ورود

View Full Version : سوال: makefile و نحوه ی ساختن آن؟



storm_saeed
سه شنبه 05 شهریور 1392, 18:22 عصر
سلام دوستان
اگه میشه یه توضیحی راجع به make file بدید و نحوه ی ساختش هم اگه زحمتی نیست بگید(اگه میشه هم نحوه ی ساخت دستی و هم Automake رو بگید)
ساخت میک فایل در qt creatorیا kdevelop به چه صورتی هست و تو qt چند حالت برای ساخت cmake داره اینا چه فرقی دارن باهم
aclocal هم اگه میشه یه توضیحی بدید خیلی خیلی ممنون میشم اگه بگید

حامد مصافی
سه شنبه 05 شهریور 1392, 20:35 عصر
makefile یک رهنمود برای ابزار‌های کامپایل است. ابزار‌های کامپایل زیادی وجود دارند یکی از پر‌کاربرد‌ترین آنها gnu make است. اکثر کامپایلر‌ها مانند gcc (و بالطبع mingw) از make استفاده می‌کنند. makefile در هر سیستم ممکن است متغیر باشد به همین دلیل ابزار‌هایی برای ساخت makefile در سیستم کابر نهایی بوجود آمده‌اند. که از آن جمله می‌توان یه این موارد اشاره کرد:

automake
qmake
rake
cmake

هر کدام از اینها برای سکو یا زبان خاصی بوجود آمده‌اند. کیوت سازنده‌ای با نام qmake دارد که وظیفه ساخت makefile را بر عهده دارد. cmake یکی از سازندگان پرقدرت و چند سکوی makefile است.

aclocal یکی از اعضای خانواده gnu autotools است که وظیفه آماده‌سازی سورس برای کامپیوتر مقصد را بر عهده دارد.

storm_saeed
چهارشنبه 06 شهریور 1392, 13:35 عصر
میشه نحوه ی ساختqmake در Qt creator رو بدید همچنین cmake
میشه یه makefile ساده رو بگید چطور مینویسن pdf ای در این باره وجود داره؟

حامد مصافی
چهارشنبه 06 شهریور 1392, 22:47 عصر
فرمان qmake در پوشه سورس فایل makefile را ایجاد می‌کند.
فرمان cmake هم دقیقا همین کار رو می‌کنه.
اگر منظورتون برای کیوت هست که makefile نمی‌نویسیم. اما اگر سایر پلتفرم‌ها منظورته سری به سورس‌فورج (http://sourceforge.net)بزن. اکثر پروژه های موجود makefile دارن.

storm_saeed
جمعه 08 شهریور 1392, 00:26 صبح
ممنون
مثلا فکر کنید من یه پروژه درست کردم حالا cmake هم ساختم برای اینکه یه فایل درست کنم به اسم configure که چک کنه کتاب خانه های مورد نیاز رو داره باید چیکار کنم بعد تو چه پروژه هایی aclocal نیاز هست و طریقه ساختنش چطوریه
مچکر

حامد مصافی
جمعه 08 شهریور 1392, 10:49 صبح
cmake نیازی به اسکریپت configure نداره. بذار کمی عملی‌تر برات توضیح بدم:

فرض کن در فایلی به نام main.cpp برنامه‌ای نوشتیم. برای استفاده از cmake باید فایلی به نام CMakeLists.txt ایجاد کنیم و خطوط زیر رو در اون درج کنیم

project(myproj)

add_executable(myproj main.cpp)

حالا فرض کن برنامه من به qt4 نیاز داره. کافیه خط زیر رو به فایل CMakeLists,txt اضافه کنم.

find_package(Qt4 REQUIRED)

به همین سادگی، حالا کاربر برای کامپایل برنامه من روی سیستم خودش این کارهارو انجام میده:


cd /path/to/source/
mkdir build
cd build
cmake ..
make

از ۳ خط اول که بگذریم عمده کار سیستم در خط ۴ هست. کامپایلر و معماری اون در فرمان cmake شناسایی میشه. cmake در به دنبال qt4 میگرده، اگر روی سیستم نصب نباشه با یک پیغام خطا کار رو نا تموم میذاره. در غیر اینصورت MakeFile رو میسازه و همه چیز رو برای make آماده می‌کنه.
در فرمان بعد کاربر با فرمان make پروژه رو کامپایل می‌کنه و در صورت تمایل می‌تونه با فرمان make install اونو روی سیستم نصب هم بکنه.

اگر می‌خواهید از cmake استفاده کنید (توصیه میشه همین کار رو انجام بدید) نیازی به ابزار‌های autotools ندارید.