انجمنهای فارسی اوبونتو
تازه کار => انجمن تازهکاران => نویسنده: mojtabam در 08 امرداد 1393، 08:51 بظ
-
سلام دوستان
من یه برنامه دارم به زبان c که در اون از توابع ریاضی مثله sqrt و exp استفاده شده
هروقت برنامه رو کامپایل میکنم از اینا ایراد میگیره
با دستور gcc کامپایل نمیشه کرد چون توو readme نوشته با دستور make باید کامپایل کنی
از -lm هم استفاده کرده جواب نگرفتم
میشه راهنمایی کنید؟
-
سعی کن از یک سیستم ساخت استفاده کنی که برای کمپایل به دردسر نیفتی. make قدیمیه و بهتره ازش استفاده نکنی. ۳ تا انتخاب اصلی داری:
1- cmake
2- qmake
3- qbs
بهترین این ۳ تا qbs است (Qt build system). البته متکی به Qt نیست ولی توسط Qt ساخته شده به درخواست کاربران. تنها qtcreator قابلیت شناساییش رو داره. سینکسش شبیه qml یا جاوااسکریپته.
cmake دسترسی بیشتری به کتابخانههای سیستم رو بهت میده و سیستم ساخت کیدیای است ولی سینتکسش حال به هم زنه.
qmake هم سیستم ساخت فعلی Qt است و توصیه میکنم در ابتدا با این کار کنی و بعد به qbs کوچ کنی.
-
سعی کن از یک سیستم ساخت استفاده کنی که برای کمپایل به دردسر نیفتی. make قدیمیه و بهتره ازش استفاده نکنی.
قدیمیه؟؟؟؟ یعنی چی این حرف؟؟؟؟؟ در مورد چیزی اطلاع خوبی ندارید بهتره صحبتی نشده در موردش. قدیمی هستش بلی ولی از این نظر که جزو اولین کامپایلرهایی هستش که تو هسته لینوکس به کار رفته. شما برای کامپایل بسیاری از نرم افزارهایی که به صورت سورس هستن بهش نیاز دارید. هر کودوم از مواردی که گفتید رو بهتر بود این طوری میگفتید که برای مورد خاصی استفاده میشن نه این که از بیخ بزنیدش
-
قدیمیه؟؟؟؟ یعنی چی این حرف؟؟؟؟؟ در مورد چیزی اطلاع خوبی ندارید بهتره صحبتی نشده در موردش. قدیمی هستش بلی ولی از این نظر که جزو اولین کامپایلرهایی هستش که تو هسته لینوکس به کار رفته. شما برای کامپایل بسیاری از نرم افزارهایی که به صورت سورس هستن بهش نیاز دارید. هر کودوم از مواردی که گفتید رو بهتر بود این طوری میگفتید که برای مورد خاصی استفاده میشن نه این که از بیخ بزنیدش
شما اول فرق کمپایلر و سیستم ساخت رو مطالعه کنید.
-
باشه استاد !! جسارت شد . من واقعا عذر میخوام !!
-
cmake دسترسی بیشتری به کتابخانههای سیستم رو بهت میده و سیستم ساخت کیدیای است ولی سینتکسش حال به هم زنه.
از cmake-qt-gui استفاده کن
sudo apt-get install cmake-qt-gui
-
سعی کن از یک سیستم ساخت استفاده کنی که برای کمپایل به دردسر نیفتی. make قدیمیه و بهتره ازش استفاده نکنی.
خوب میگه برنامه آماده رو داره! اینطوری گفتن عدم استفاده از make معنی نداره و مشکلی هم که گفته مشکل make نیست.
در غیر اونصورت هم من به شخصه make رو ترجیح میدم.
میشه راهنمایی کنید؟
اگر میخواید جواب بگیرید، سعی نکنید که مشکل رو برای ما ترجمه کنید، بلکه مستقیما خروجی و دستوراتی که مینویسید رو برای ما بذارید.
-
مشکل ایشون اینه که نمیدونه دقیقا چطوری گزینههای کمپایلر رو بنویسه. یکی از مزایای یک سیستم ساخت اینه که هوشمنده و میتونه بفهمه که مثلا گزینهٔ -lm رو چطوری باید در make-فایلها قرار بده.
روش درست ست کردن گزینهٔ -lm به این صورته (برای کمپایل یک فایل تنها به اسم main.c)
gcc -o main main.c -lm
-
مشکل ایشون اینه که نمیدونه دقیقا چطوری گزینههای کمپایلر رو بنویسه.
در نتیجه بجای اضافه کردن lm- به FLAGS توی Makefile، کلا به cmake یا qbs مهاجرت کنه؟ :)
-
مشکل ایشون اینه که نمیدونه دقیقا چطوری گزینههای کمپایلر رو بنویسه.
در نتیجه بجای اضافه کردن lm- به FLAGS توی Makefile، کلا به cmake یا qbs مهاجرت کنه؟ :)
وقتی یک فایل یا دو فایله و فقط برای لینوکس داره کمپایل میشه دلیلی نداره. ولی اگر قراره یه پروژه متوسط بنویسه و چند سکویی باشه دیگه makeها رو باید به یه سیستم سپرد. cmake و یا qmake میتونند بر اساس کمپایلر شما عمل کنه. به عنوان مثال، cmake و یا qmake با دیدن #include <math.h> و با توجه به کمپایلر شما میفهمه باید چه پرجمی رو و به چه صورت در make-فایلها قرار بده، ولی اگر تنها از make-فایلها استفاده کرده باشید، برای هر کمپایلری باید خودتون دستی این کار رو انجام بدید.
-
اگر قراره یه پروژه متوسط بنویسه و چند سکویی باشه
خوب پس سوال رو درست نخوندید. ایشون برنامه آماده رو داره و میخواد کامپایلش کنه :)
-
اساتبد و دوستان عزیز اصل سوال من یه چیز دیگه اس ولی قبلا پرسیدم ولی کسی پاسخ نداده حتی توو سایت های معروف مثله stackoverflow و ...
من تازه با لینوکس کار کردم و زیاد باهاش آشنایی ندارم هدف من اینه که زمانبند این سیستم عامل رو شبیه سازی کنم پس از جستجو به شبیه ساز linsched برخوردم چند روزه دارم اجراش میکنم هربار یه خطا میده. اینبار این خطارو داده readme رو هم که مطالعه کردم نوشته برای اجرا باید از دستور make run_all_tests استفاده کنی این کد رو وارد می کنم ولی میگه توابع ریاضی موجود نیست مثله sqrt و exp
کسی از دوستان هست که با linsched کار کرده باشه؟ دیگه خستم کرده به هر دری میزنم بستس
-
میای دعوا درست میکنی و بعد تازه سوال اصلی رو میپرسی ;D
توی MakeFile در قسمت پرچم CFLAGS مقدار -m32 رو اضافه کن
CFLAGS = -m32 -g ...
و LFLAGS رو هم به CFLAGS تبدیل کن.
-
میای دعوا درست میکنی و بعد تازه سوال اصلی رو میپرسی ;D
توی MakeFile در قسمت پرچم CFLAGS مقدار -m32 رو اضافه کن
CFLAGS = -m32 -g ...
و LFLAGS رو هم به CFLAGS تبدیل کن.
هه هه! شرمنده
اینا برای چیه؟ برای سیستم های 32 بیتی یا 64 بیتیه میشه توضیح بدین؟
سیستم عامل من 64 بیتیه
-
تو هر دایرکتوری یه makefile هست همه رو عوض کنم؟ توو پوشه linsched تغییرش دادم ولی باز اون خطارو داد
-
کسی دیگه از اساتید نمیتونه راهنمایی کنه؟
خیلی کلافم کرده ](*,)
-
چرا از اکلیپس استفاده نمی کنید؟
-
چرا از اکلیپس استفاده نمی کنید؟
خود برنامه به زبان c نوشته شده من فقط میخوام اجراش کنم و جواب بگیرم یه گیته از هرکی سوال پرسیدم نتونسته جواب بده. خودم تخصصم لینوکس نیست
-
چه برنامه ای است؟
-
سلام دوست عزیز!
همیشه برای این که بهتر جواب بگیرید، دستوراتی که می زنید به علاوه ی خروجیشون رو بذارید تا بقیه بفهمن اون جا چه خبره! ;)
-
چه برنامه ای است؟
برنامه linsched
توو سایتهایی چون codeproject و stackoverflow هم گشتم و پرسیدم ولی به جواب نرسیدم. برای شبیه سازی زمانبندی لینوکسه
-
سلام دوست عزیز!
همیشه برای این که بهتر جواب بگیرید، دستوراتی که می زنید به علاوه ی خروجیشون رو بذارید تا بقیه بفهمن اون جا چه خبره! ;)
سلام
قبلا این کارو کردم به جواب نرسیدم :(
-
سلام دوست عزیز!
همیشه برای این که بهتر جواب بگیرید، دستوراتی که می زنید به علاوه ی خروجیشون رو بذارید تا بقیه بفهمن اون جا چه خبره! ;)
سلام
قبلا این کارو کردم به جواب نرسیدم :(
پس این دفعه که نکردید چه انتظاری دارید ;D
حالا متن خطا رو بذارید ببینیم چی می گه... بلکه مشکلتون حل شد...
-
سلام دوست عزیز!
همیشه برای این که بهتر جواب بگیرید، دستوراتی که می زنید به علاوه ی خروجیشون رو بذارید تا بقیه بفهمن اون جا چه خبره! ;)
سلام
قبلا این کارو کردم به جواب نرسیدم :(
پس این دفعه که نکردید چه انتظاری دارید ;D
حالا متن خطا رو بذارید ببینیم چی می گه... بلکه مشکلتون حل شد...
:D گفتم شاید حداقل کسی بتونه این خطارو رفع کنه متن خطا میگه که توابع sqrt و exp تعریف نشدن
tools/linsched/tests/linsched_rand_test.c:169: undefined reference to `sqrt'
-
به فایل
tools/linsched/tests/Makefile
برید و خط ۳۶ قبل از -o این عبارت رو قرار بدید -lm، که به صورت زیر میشه.
@${CC} ${LFLAGS} -lm -o $@ $@.percpu -MMD
-
به فایل
tools/linsched/tests/Makefile
برید و خط ۳۶ قبل از -o این عبارت رو قرار بدید -lm، که به صورت زیر میشه.
@${CC} ${LFLAGS} -lm -o $@ $@.percpu -MMD
بازم همون خطا رو داد :(
-
سلام!
به حرفی که این جا زده دقت کردی؟: http://www.cs.unc.edu/~jmc/linsched (http://www.cs.unc.edu/~jmc/linsched)
LinSched should compile successfully using "make" on 32-bit Intel platforms using the gcc 4.0 compiler.
Doing so builds the "linsched" program which will run an example simulation using the LinSched API.
LinSched has also compiled and run successfully on 64-bit Intel platforms when the -m32 compiler option was used.
While there has been some success building LinSched using gcc 3.4.x,
doing so is not recommended and will require modification of the Makefile.
-
سلام!
به حرفی که این جا زده دقت کردی؟: http://www.cs.unc.edu/~jmc/linsched (http://www.cs.unc.edu/~jmc/linsched)
LinSched should compile successfully using "make" on 32-bit Intel platforms using the gcc 4.0 compiler.
Doing so builds the "linsched" program which will run an example simulation using the LinSched API.
LinSched has also compiled and run successfully on 64-bit Intel platforms when the -m32 compiler option was used.
While there has been some success building LinSched using gcc 3.4.x,
doing so is not recommended and will require modification of the Makefile.
این گیت نیست این نسخه 2.6 من نسخه(آلفا) 3.3 رو استفاده میکنم که کامله! اینو رو 32 بیت و 64 بیت اجرا کردم