انجمن‌های فارسی اوبونتو

تازه کار => انجمن تازه‌کاران => نویسنده: mojtabam در 08 امرداد 1393، 08:51 ب‌ظ

عنوان: خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: mojtabam در 08 امرداد 1393، 08:51 ب‌ظ
سلام دوستان
من یه برنامه دارم به زبان c که در اون از توابع ریاضی مثله sqrt و exp استفاده شده
هروقت برنامه رو کامپایل میکنم از اینا ایراد میگیره
با دستور gcc کامپایل نمیشه کرد چون توو readme نوشته با دستور make باید کامپایل کنی
از -lm هم استفاده کرده جواب نگرفتم
میشه راهنمایی کنید؟
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: امید توانا در 08 امرداد 1393، 09:09 ب‌ظ
سعی کن از یک سیستم ساخت استفاده کنی که برای کمپایل به دردسر نیفتی. make قدیمیه و بهتره ازش استفاده نکنی. ۳ تا انتخاب اصلی داری:
1- cmake
2- qmake
3- qbs

بهترین این ۳ تا qbs است (Qt build system). البته متکی به Qt نیست ولی توسط Qt ساخته شده به درخواست کاربران. تنها qtcreator قابلیت شناساییش رو داره. سینکسش شبیه qml یا جاوااسکریپته.
cmake دسترسی بیشتری به کتابخانه‌های سیستم رو بهت می‌ده و سیستم ساخت کی‌دی‌ای است ولی سینتکسش حال به هم زنه.
qmake هم سیستم ساخت فعلی Qt است و توصیه می‌کنم در ابتدا با این کار کنی و بعد به qbs کوچ کنی.
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: مهدی پیشگوی در 08 امرداد 1393، 10:20 ب‌ظ
سعی کن از یک سیستم ساخت استفاده کنی که برای کمپایل به دردسر نیفتی. make قدیمیه و بهتره ازش استفاده نکنی.

قدیمیه؟؟؟؟ یعنی چی این حرف؟؟؟؟؟ در مورد چیزی اطلاع خوبی ندارید بهتره صحبتی نشده در موردش. قدیمی هستش بلی ولی از این نظر که جزو اولین کامپایلرهایی هستش که تو هسته لینوکس به کار رفته. شما برای کامپایل بسیاری از نرم افزارهایی که به صورت سورس هستن بهش نیاز دارید. هر کودوم از مواردی که گفتید رو بهتر بود این طوری میگفتید که برای مورد خاصی استفاده میشن نه این که از بیخ بزنیدش
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: امید توانا در 08 امرداد 1393، 10:36 ب‌ظ
قدیمیه؟؟؟؟ یعنی چی این حرف؟؟؟؟؟ در مورد چیزی اطلاع خوبی ندارید بهتره صحبتی نشده در موردش. قدیمی هستش بلی ولی از این نظر که جزو اولین کامپایلرهایی هستش که تو هسته لینوکس به کار رفته. شما برای کامپایل بسیاری از نرم افزارهایی که به صورت سورس هستن بهش نیاز دارید. هر کودوم از مواردی که گفتید رو بهتر بود این طوری میگفتید که برای مورد خاصی استفاده میشن نه این که از بیخ بزنیدش

شما اول فرق کمپایلر و سیستم ساخت رو مطالعه کنید.
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: مهدی پیشگوی در 08 امرداد 1393، 11:08 ب‌ظ
باشه استاد !! جسارت شد . من واقعا عذر میخوام !!
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: robotic در 08 امرداد 1393، 11:19 ب‌ظ
cmake دسترسی بیشتری به کتابخانه‌های سیستم رو بهت می‌ده و سیستم ساخت کی‌دی‌ای است ولی سینتکسش حال به هم زنه.

از cmake-qt-gui استفاده کن

sudo apt-get install cmake-qt-gui
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: nixoeen در 09 امرداد 1393، 12:17 ق‌ظ
سعی کن از یک سیستم ساخت استفاده کنی که برای کمپایل به دردسر نیفتی. make قدیمیه و بهتره ازش استفاده نکنی.
خوب می‌گه برنامه آماده رو داره! اینطوری گفتن عدم استفاده از make معنی نداره و مشکلی هم که گفته مشکل make نیست.

در غیر اونصورت هم من به شخصه make رو ترجیح می‌دم.

میشه راهنمایی کنید؟
اگر می‌خواید جواب بگیرید، سعی نکنید که مشکل رو برای ما ترجمه کنید، بلکه مستقیما خروجی و دستوراتی که می‌نویسید رو برای ما بذارید.
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: امید توانا در 09 امرداد 1393، 12:43 ق‌ظ
مشکل ایشون اینه که نمی‌دونه دقیقا چطوری گزینه‌های کمپایلر رو بنویسه. یکی از مزایای یک سیستم ساخت اینه که هوشمنده و می‌تونه بفهمه که مثلا گزینهٔ -lm رو چطوری باید در make-فایلها قرار بده.
روش درست ست کردن گزینهٔ -lm به این صورته (برای کمپایل یک فایل تنها به اسم main.c)
gcc -o main main.c -lm
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: nixoeen در 09 امرداد 1393، 01:05 ق‌ظ
مشکل ایشون اینه که نمی‌دونه دقیقا چطوری گزینه‌های کمپایلر رو بنویسه.
در نتیجه بجای اضافه کردن lm- به FLAGS توی Makefile، کلا به cmake یا qbs مهاجرت کنه؟ :)
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: امید توانا در 09 امرداد 1393، 02:10 ق‌ظ
مشکل ایشون اینه که نمی‌دونه دقیقا چطوری گزینه‌های کمپایلر رو بنویسه.
در نتیجه بجای اضافه کردن lm- به FLAGS توی Makefile، کلا به cmake یا qbs مهاجرت کنه؟ :)
وقتی یک فایل یا دو فایله و فقط برای لینوکس داره کمپایل می‌شه دلیلی نداره. ولی اگر قراره یه پروژه متوسط بنویسه و چند سکویی باشه دیگه makeها رو باید به یه سیستم سپرد. cmake و یا qmake می‌تونند بر اساس کمپایلر شما عمل کنه. به عنوان مثال، cmake و یا qmake با دیدن #include <math.h> و با توجه به کمپایلر شما می‌فهمه باید چه پرجمی رو و به چه صورت در make-فایل‌ها قرار بده، ولی اگر تنها از make-فایلها استفاده کرده باشید، برای هر کمپایلری باید خودتون دستی این کار رو انجام بدید.
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: nixoeen در 09 امرداد 1393، 02:28 ق‌ظ
اگر قراره یه پروژه متوسط بنویسه و چند سکویی باشه
خوب پس سوال رو درست نخوندید. ایشون برنامه آماده رو داره و می‌خواد کامپایلش کنه :)

عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: mojtabam در 09 امرداد 1393، 02:43 ق‌ظ
اساتبد و دوستان عزیز اصل سوال من یه چیز دیگه اس ولی قبلا پرسیدم ولی کسی پاسخ نداده حتی توو سایت های معروف مثله stackoverflow و ...
من تازه با لینوکس کار کردم و زیاد باهاش آشنایی ندارم هدف من اینه که زمانبند این سیستم عامل رو شبیه سازی کنم پس از جستجو به شبیه ساز linsched برخوردم چند روزه دارم اجراش میکنم هربار یه خطا میده. اینبار این خطارو داده readme رو هم که مطالعه کردم نوشته برای اجرا باید از دستور make run_all_tests استفاده کنی این کد رو وارد می کنم ولی میگه توابع ریاضی موجود نیست مثله sqrt و exp
کسی از دوستان هست که با linsched کار کرده باشه؟ دیگه خستم کرده به هر دری میزنم بستس
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: امید توانا در 09 امرداد 1393، 03:29 ق‌ظ
میای دعوا درست می‌کنی و بعد تازه سوال اصلی رو می‌پرسی ;D
توی MakeFile در قسمت پرچم CFLAGS مقدار -m32 رو اضافه کن
CFLAGS = -m32 -g ...و LFLAGS رو هم به CFLAGS تبدیل کن.
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: mojtabam در 09 امرداد 1393، 12:29 ب‌ظ
میای دعوا درست می‌کنی و بعد تازه سوال اصلی رو می‌پرسی ;D
توی MakeFile در قسمت پرچم CFLAGS مقدار -m32 رو اضافه کن
CFLAGS = -m32 -g ...و LFLAGS رو هم به CFLAGS تبدیل کن.
هه هه! شرمنده
اینا برای چیه؟ برای سیستم های 32 بیتی یا 64 بیتیه میشه توضیح بدین؟
سیستم عامل من 64 بیتیه
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: mojtabam در 09 امرداد 1393، 12:33 ب‌ظ
تو هر دایرکتوری یه makefile هست همه رو عوض کنم؟ توو پوشه linsched تغییرش دادم ولی باز اون خطارو داد
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: mojtabam در 09 امرداد 1393، 02:10 ب‌ظ
کسی دیگه از اساتید نمیتونه راهنمایی کنه؟
خیلی کلافم کرده ](*,)
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: alend در 10 امرداد 1393، 06:37 ق‌ظ
چرا از اکلیپس استفاده نمی کنید؟
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: mojtabam در 10 امرداد 1393، 11:53 ق‌ظ
چرا از اکلیپس استفاده نمی کنید؟
خود برنامه به زبان c نوشته شده من فقط میخوام اجراش کنم و جواب بگیرم یه گیته از هرکی سوال پرسیدم نتونسته جواب بده. خودم تخصصم لینوکس نیست
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: alend در 10 امرداد 1393، 11:57 ق‌ظ
چه برنامه ای است؟
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: ارباب! در 10 امرداد 1393، 12:31 ب‌ظ
سلام دوست عزیز!
همیشه برای این که بهتر جواب بگیرید، دستوراتی که می زنید به علاوه ی خروجیشون رو بذارید تا بقیه بفهمن اون جا چه خبره!  ;)
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: mojtabam در 10 امرداد 1393، 01:20 ب‌ظ
چه برنامه ای است؟
برنامه linsched
توو سایتهایی چون codeproject و stackoverflow هم گشتم و پرسیدم ولی به جواب نرسیدم. برای شبیه سازی زمانبندی لینوکسه
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: mojtabam در 10 امرداد 1393، 01:21 ب‌ظ
سلام دوست عزیز!
همیشه برای این که بهتر جواب بگیرید، دستوراتی که می زنید به علاوه ی خروجیشون رو بذارید تا بقیه بفهمن اون جا چه خبره!  ;)
سلام
قبلا این کارو کردم به جواب نرسیدم  :(
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: ارباب! در 10 امرداد 1393، 01:25 ب‌ظ
سلام دوست عزیز!
همیشه برای این که بهتر جواب بگیرید، دستوراتی که می زنید به علاوه ی خروجیشون رو بذارید تا بقیه بفهمن اون جا چه خبره!  ;)
سلام
قبلا این کارو کردم به جواب نرسیدم  :(
پس این دفعه که نکردید چه انتظاری دارید  ;D
حالا متن خطا رو بذارید ببینیم چی می گه... بلکه مشکلتون حل شد...
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: mojtabam در 10 امرداد 1393، 02:29 ب‌ظ
سلام دوست عزیز!
همیشه برای این که بهتر جواب بگیرید، دستوراتی که می زنید به علاوه ی خروجیشون رو بذارید تا بقیه بفهمن اون جا چه خبره!  ;)
سلام
قبلا این کارو کردم به جواب نرسیدم  :(
پس این دفعه که نکردید چه انتظاری دارید  ;D
حالا متن خطا رو بذارید ببینیم چی می گه... بلکه مشکلتون حل شد...
:D گفتم شاید حداقل کسی بتونه این خطارو رفع کنه متن خطا میگه که توابع sqrt و exp تعریف نشدن

tools/linsched/tests/linsched_rand_test.c:169: undefined reference to `sqrt'
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: امید توانا در 10 امرداد 1393، 03:19 ب‌ظ
به فایل
tools/linsched/tests/Makefileبرید و خط ۳۶ قبل از -o این عبارت رو قرار بدید -lm، که به صورت زیر می‌شه.
@${CC} ${LFLAGS} -lm -o $@ $@.percpu -MMD
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: mojtabam در 10 امرداد 1393، 03:59 ب‌ظ
به فایل
tools/linsched/tests/Makefileبرید و خط ۳۶ قبل از -o این عبارت رو قرار بدید -lm، که به صورت زیر می‌شه.
@${CC} ${LFLAGS} -lm -o $@ $@.percpu -MMD

بازم همون خطا رو داد  :(
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: ارباب! در 10 امرداد 1393، 05:04 ب‌ظ
سلام!
به حرفی که این جا زده دقت کردی؟: 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.
عنوان: پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
ارسال شده توسط: mojtabam در 10 امرداد 1393، 05:18 ب‌ظ
سلام!
به حرفی که این جا زده دقت کردی؟: 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 بیت اجرا کردم