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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: سلمان م. در 12 تیر 1391، 07:22 ب‌ظ

عنوان: gcc پیغام خطا می ده ولیdev-c++ نه!! (حل شد)
ارسال شده توسط: سلمان م. در 12 تیر 1391، 07:22 ب‌ظ
با عرض سلام خدمت همه بزرگای مجلس
من یه مشکل تو برنامه نویسی زبان c داشتم. وقتی کد زیر رو با gcc اجرا می کنم پیغام خطا می ده ولی تو dev-c++ تو ویندوز که اجرا می کنم راحت و آسوده جواب می ده! لطفا بگید چیکار کنم
#include "stdio.h"
#include "math.h"
main()
{
      double a ;
      scanf("%lf",&a);
      printf("%lf",sin(a));
      return 0 ;
      }
     
عنوان: پاسخ : gcc پیغام خطا می ده ولیdev-c++ نه!!
ارسال شده توسط: shervinkh در 12 تیر 1391، 08:10 ب‌ظ
این برنامه کاملا غلطه.مشکل از Dev-C هست که خطا نمیده.درستش اینه:

#include <stdio.h>
#include <math.h>

int main()
{
      double a;
      scanf("%lf",&a);
      printf("%lf",sin(a));
      return 0;
}

دقت کنید پسوند فایل هم .c باشه نه .cpp
عنوان: پاسخ : gcc پیغام خطا می ده ولیdev-c++ نه!!
ارسال شده توسط: سلمان م. در 12 تیر 1391، 09:57 ب‌ظ
داداش دستت درد نکنه. ولی بازم همون پیغام خطا رو می‌ده! نت‌بیتز این رو می‌گه.

/home/sal/NetBeansProjects/CppApplication_2/main.c:8: undefined reference to `sin'
collect2: ld returned 1 exit status

عنوان: پاسخ : gcc پیغام خطا می ده ولیdev-c++ نه!!
ارسال شده توسط: 不眠症 در 12 تیر 1391، 10:50 ب‌ظ
این کد با gcc بدون اشکال کامپایل میشه!
عنوان: پاسخ : gcc پیغام خطا می ده ولیdev-c++ نه!!
ارسال شده توسط: سلمان م. در 12 تیر 1391، 10:54 ب‌ظ
این کد با gcc بدون اشکال کامپایل میشه!
من وقتی با gcc از تو ترمینال می‌خوام کامپایل کنم این پیغامو می‌ده.

collect2: ld returned 1 exit status
عنوان: پاسخ : gcc پیغام خطا می ده ولیdev-c++ نه!!
ارسال شده توسط: shervinkh در 13 تیر 1391، 12:01 ق‌ظ
به جای دستور gcc از دستور g++ استقاده کنید که خودش کتابخونه ها رو لینک می کنه.فقط پسوند فایل تون .c باشه.

در ضمن تابع sin مقدار زاویه رو به رادیان میگیره نه به درجه.(صرفا جهت اطلاع بود)

راهه دیگش استفاده از همون gcc فقط با فلگ -lm هست که کتابخونه math رو لینک کنه.

عکس (برای بزرگ شدن کلیک کنید):

(http://up.vatandownload.com/index.php?module=thumbnail&file=7w2zg80ivdfo1uqq395k.png) (http://up.vatandownload.com/images/7w2zg80ivdfo1uqq395k.png)
عنوان: پاسخ : gcc پیغام خطا می ده ولیdev-c++ نه!!
ارسال شده توسط: 不眠症 در 13 تیر 1391، 12:07 ق‌ظ
نقل‌قول
من وقتی با gcc از تو ترمینال می‌خوام کامپایل کنم این پیغامو می‌ده.

collect2: ld returned 1 exit status
توی ترمینال چه دستوری وارد میکنید?
g++ main.c -o main
ویرایش: این پست هنگامی زده شد که دوستان جواب را ارسال کردند...
عنوان: پاسخ : gcc پیغام خطا می ده ولیdev-c++ نه!!
ارسال شده توسط: سلمان م. در 14 تیر 1391، 05:35 ب‌ظ
دم همتوم گرم! مخصوصا Shervinkh ! مرسی. حل شد.
عنوان: پاسخ : gcc پیغام خطا می ده ولیdev-c++ نه!!
ارسال شده توسط: محمدرضا ح. در 14 تیر 1391، 10:20 ب‌ظ
چرا از gcc استفاده میکنید وقتی cc به اون خوبی هست  \\:D/

دستوراتش هم با gcc هیچ تفاوتی نداره. فقط قبل از کار مطمئن بشید نصب هست یا نه :

$which cc
عنوان: پاسخ : gcc پیغام خطا می ده ولیdev-c++ نه!!
ارسال شده توسط: nixoeen در 14 تیر 1391، 11:15 ب‌ظ
چرا از gcc استفاده میکنید وقتی cc به اون خوبی هست  \\:D/
دستوراتش هم با gcc هیچ تفاوتی نداره.
یک جوری میگید cc به اون خوبی که هر شخصی ندونه فکر می‌کنه cc چی هست!!! cc تنها یک Symbolic Link به gcc هستش و با gcc فرقی نداره، غیر از اینکه توی Alternativeها یک کامپایلر دیگه رو براش تعریف کنید. برای همین هم هست که دستوراتش با gcc هیچ تفاوتی نداره، چون خود gcc هستش.

به جای دستور gcc از دستور g++ استقاده کنید که خودش کتابخونه ها رو لینک می کنه.
درسته که شدنی هستش ولی این کار خیلی کار درستی نیست و پیشنهاد نمیشه. بهتره ++g تنها برای کامپایل برنامه‌های ++C استفاده بشه، یا برنامه‌های C که قرار هست Object اونها با برنامه‌ی ++Cای که داریم Link بشه.