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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: خطای توابع ریاضی هنگام کاپایل برنامه c  (دفعات بازدید: 2692 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین mojtabam

  • Jr. Member
  • *
  • ارسال: 33
خطای توابع ریاضی هنگام کاپایل برنامه c
« : 08 امرداد 1393، 08:51 ب‌ظ »
سلام دوستان
من یه برنامه دارم به زبان c که در اون از توابع ریاضی مثله sqrt و exp استفاده شده
هروقت برنامه رو کامپایل میکنم از اینا ایراد میگیره
با دستور gcc کامپایل نمیشه کرد چون توو readme نوشته با دستور make باید کامپایل کنی
از -lm هم استفاده کرده جواب نگرفتم
میشه راهنمایی کنید؟

آفلاین امید توانا

  • Hero Member
  • *
  • ارسال: 981
  • جنسیت : پسر
پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
« پاسخ #1 : 08 امرداد 1393، 09:09 ب‌ظ »
سعی کن از یک سیستم ساخت استفاده کنی که برای کمپایل به دردسر نیفتی. make قدیمیه و بهتره ازش استفاده نکنی. ۳ تا انتخاب اصلی داری:
1- cmake
2- qmake
3- qbs

بهترین این ۳ تا qbs است (Qt build system). البته متکی به Qt نیست ولی توسط Qt ساخته شده به درخواست کاربران. تنها qtcreator قابلیت شناساییش رو داره. سینکسش شبیه qml یا جاوااسکریپته.
cmake دسترسی بیشتری به کتابخانه‌های سیستم رو بهت می‌ده و سیستم ساخت کی‌دی‌ای است ولی سینتکسش حال به هم زنه.
qmake هم سیستم ساخت فعلی Qt است و توصیه می‌کنم در ابتدا با این کار کنی و بعد به qbs کوچ کنی.

آفلاین مهدی پیشگوی

  • High Hero Member
  • *
  • ارسال: 3100
  • جنسیت : پسر
  • لينوكس يعني آزادي ، امنيت
پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
« پاسخ #2 : 08 امرداد 1393، 10:20 ب‌ظ »
سعی کن از یک سیستم ساخت استفاده کنی که برای کمپایل به دردسر نیفتی. make قدیمیه و بهتره ازش استفاده نکنی.

قدیمیه؟؟؟؟ یعنی چی این حرف؟؟؟؟؟ در مورد چیزی اطلاع خوبی ندارید بهتره صحبتی نشده در موردش. قدیمی هستش بلی ولی از این نظر که جزو اولین کامپایلرهایی هستش که تو هسته لینوکس به کار رفته. شما برای کامپایل بسیاری از نرم افزارهایی که به صورت سورس هستن بهش نیاز دارید. هر کودوم از مواردی که گفتید رو بهتر بود این طوری میگفتید که برای مورد خاصی استفاده میشن نه این که از بیخ بزنیدش

آفلاین امید توانا

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

شما اول فرق کمپایلر و سیستم ساخت رو مطالعه کنید.
« آخرین ویرایش: 08 امرداد 1393، 10:38 ب‌ظ توسط امید توانا »

آفلاین مهدی پیشگوی

  • High Hero Member
  • *
  • ارسال: 3100
  • جنسیت : پسر
  • لينوكس يعني آزادي ، امنيت
پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
« پاسخ #4 : 08 امرداد 1393، 11:08 ب‌ظ »
باشه استاد !! جسارت شد . من واقعا عذر میخوام !!

آفلاین robotic

  • Full Member
  • *
  • ارسال: 176
  • جنسیت : پسر
پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
« پاسخ #5 : 08 امرداد 1393، 11:19 ب‌ظ »
cmake دسترسی بیشتری به کتابخانه‌های سیستم رو بهت می‌ده و سیستم ساخت کی‌دی‌ای است ولی سینتکسش حال به هم زنه.

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

sudo apt-get install cmake-qt-gui

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4871
  • جنسیت : پسر
  • masoft قدیم
پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
« پاسخ #6 : 09 امرداد 1393، 12:17 ق‌ظ »
سعی کن از یک سیستم ساخت استفاده کنی که برای کمپایل به دردسر نیفتی. make قدیمیه و بهتره ازش استفاده نکنی.
خوب می‌گه برنامه آماده رو داره! اینطوری گفتن عدم استفاده از make معنی نداره و مشکلی هم که گفته مشکل make نیست.

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

میشه راهنمایی کنید؟
اگر می‌خواید جواب بگیرید، سعی نکنید که مشکل رو برای ما ترجمه کنید، بلکه مستقیما خروجی و دستوراتی که می‌نویسید رو برای ما بذارید.

آفلاین امید توانا

  • Hero Member
  • *
  • ارسال: 981
  • جنسیت : پسر
پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
« پاسخ #7 : 09 امرداد 1393، 12:43 ق‌ظ »
مشکل ایشون اینه که نمی‌دونه دقیقا چطوری گزینه‌های کمپایلر رو بنویسه. یکی از مزایای یک سیستم ساخت اینه که هوشمنده و می‌تونه بفهمه که مثلا گزینهٔ -lm رو چطوری باید در make-فایلها قرار بده.
روش درست ست کردن گزینهٔ -lm به این صورته (برای کمپایل یک فایل تنها به اسم main.c)
gcc -o main main.c -lm

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4871
  • جنسیت : پسر
  • masoft قدیم
پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
« پاسخ #8 : 09 امرداد 1393، 01:05 ق‌ظ »
مشکل ایشون اینه که نمی‌دونه دقیقا چطوری گزینه‌های کمپایلر رو بنویسه.
در نتیجه بجای اضافه کردن lm- به FLAGS توی Makefile، کلا به cmake یا qbs مهاجرت کنه؟ :)
« آخرین ویرایش: 09 امرداد 1393، 01:08 ق‌ظ توسط nixoeen »

آفلاین امید توانا

  • Hero Member
  • *
  • ارسال: 981
  • جنسیت : پسر
پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
« پاسخ #9 : 09 امرداد 1393، 02:10 ق‌ظ »
مشکل ایشون اینه که نمی‌دونه دقیقا چطوری گزینه‌های کمپایلر رو بنویسه.
در نتیجه بجای اضافه کردن lm- به FLAGS توی Makefile، کلا به cmake یا qbs مهاجرت کنه؟ :)
وقتی یک فایل یا دو فایله و فقط برای لینوکس داره کمپایل می‌شه دلیلی نداره. ولی اگر قراره یه پروژه متوسط بنویسه و چند سکویی باشه دیگه makeها رو باید به یه سیستم سپرد. cmake و یا qmake می‌تونند بر اساس کمپایلر شما عمل کنه. به عنوان مثال، cmake و یا qmake با دیدن #include <math.h> و با توجه به کمپایلر شما می‌فهمه باید چه پرجمی رو و به چه صورت در make-فایل‌ها قرار بده، ولی اگر تنها از make-فایلها استفاده کرده باشید، برای هر کمپایلری باید خودتون دستی این کار رو انجام بدید.

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4871
  • جنسیت : پسر
  • masoft قدیم
پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
« پاسخ #10 : 09 امرداد 1393، 02:28 ق‌ظ »
اگر قراره یه پروژه متوسط بنویسه و چند سکویی باشه
خوب پس سوال رو درست نخوندید. ایشون برنامه آماده رو داره و می‌خواد کامپایلش کنه :)


آفلاین mojtabam

  • Jr. Member
  • *
  • ارسال: 33
پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
« پاسخ #11 : 09 امرداد 1393، 02:43 ق‌ظ »
اساتبد و دوستان عزیز اصل سوال من یه چیز دیگه اس ولی قبلا پرسیدم ولی کسی پاسخ نداده حتی توو سایت های معروف مثله stackoverflow و ...
من تازه با لینوکس کار کردم و زیاد باهاش آشنایی ندارم هدف من اینه که زمانبند این سیستم عامل رو شبیه سازی کنم پس از جستجو به شبیه ساز linsched برخوردم چند روزه دارم اجراش میکنم هربار یه خطا میده. اینبار این خطارو داده readme رو هم که مطالعه کردم نوشته برای اجرا باید از دستور make run_all_tests استفاده کنی این کد رو وارد می کنم ولی میگه توابع ریاضی موجود نیست مثله sqrt و exp
کسی از دوستان هست که با linsched کار کرده باشه؟ دیگه خستم کرده به هر دری میزنم بستس

آفلاین امید توانا

  • Hero Member
  • *
  • ارسال: 981
  • جنسیت : پسر
پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
« پاسخ #12 : 09 امرداد 1393، 03:29 ق‌ظ »
میای دعوا درست می‌کنی و بعد تازه سوال اصلی رو می‌پرسی ;D
توی MakeFile در قسمت پرچم CFLAGS مقدار -m32 رو اضافه کن
CFLAGS = -m32 -g ...و LFLAGS رو هم به CFLAGS تبدیل کن.

آفلاین mojtabam

  • Jr. Member
  • *
  • ارسال: 33
پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
« پاسخ #13 : 09 امرداد 1393، 12:29 ب‌ظ »
میای دعوا درست می‌کنی و بعد تازه سوال اصلی رو می‌پرسی ;D
توی MakeFile در قسمت پرچم CFLAGS مقدار -m32 رو اضافه کن
CFLAGS = -m32 -g ...و LFLAGS رو هم به CFLAGS تبدیل کن.
هه هه! شرمنده
اینا برای چیه؟ برای سیستم های 32 بیتی یا 64 بیتیه میشه توضیح بدین؟
سیستم عامل من 64 بیتیه

آفلاین mojtabam

  • Jr. Member
  • *
  • ارسال: 33
پاسخ : خطای توابع ریاضی هنگام کاپایل برنامه c
« پاسخ #14 : 09 امرداد 1393، 12:33 ب‌ظ »
تو هر دایرکتوری یه makefile هست همه رو عوض کنم؟ توو پوشه linsched تغییرش دادم ولی باز اون خطارو داد