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

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

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


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: ارور در gcc (حل شد)  (دفعات بازدید: 2584 بار)

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

آفلاین 🇮🇷

  • رضا حسین‌زاده
  • High Hero Member
  • *
  • ارسال: 1001
  • کنجکاو
    • Reza
پاسخ : ارور در gcc
« پاسخ #15 : 18 خرداد 1400، 10:25 ق‌ظ »
تابع main اشتباه تایپی داره به
int main()اصلاح کنید.

کامپایل
g++ stack.cpp code.cpp -o executable
اجرا
./executable
ممنونم. این اشتباه رو اصلاح کردم ولی باز هم ارور میده:
/usr/bin/ld: /tmp/ccCqjdnr.o: in function `__static_initialization_and_destruction_0(int, int)':
Stack.cpp:(.text+0x29): undefined reference to `std::ios_base::Init::Init()'
/usr/bin/ld: Stack.cpp:(.text+0x3e): undefined reference to `std::ios_base::Init::~Init()'
/usr/bin/ld: /tmp/cctCV44p.o: in function `__static_initialization_and_destruction_0(int, int)':
queue_arr2.cpp:(.text+0x10d): undefined reference to `std::ios_base::Init::Init()'
/usr/bin/ld: queue_arr2.cpp:(.text+0x122): undefined reference to `std::ios_base::Init::~Init()'
/usr/bin/ld: /tmp/cctCV44p.o: in function `Stack::print()':
queue_arr2.cpp:(.text._ZN5Stack5printEv[_ZN5Stack5printEv]+0x2f): undefined reference to `std::cout'
/usr/bin/ld: queue_arr2.cpp:(.text._ZN5Stack5printEv[_ZN5Stack5printEv]+0x34): undefined reference to `std::ostream::operator<<(int)'
/usr/bin/ld: queue_arr2.cpp:(.text._ZN5Stack5printEv[_ZN5Stack5printEv]+0x3e): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
/usr/bin/ld: queue_arr2.cpp:(.text._ZN5Stack5printEv[_ZN5Stack5printEv]+0x49): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
/usr/bin/ld: /tmp/cctCV44p.o: in function `Queue::two_to_one()':
queue_arr2.cpp:(.text._ZN5Queue10two_to_oneEv[_ZN5Queue10two_to_oneEv]+0x69): undefined reference to `__cxa_allocate_exception'
/usr/bin/ld: queue_arr2.cpp:(.text._ZN5Queue10two_to_oneEv[_ZN5Queue10two_to_oneEv]+0x7f): undefined reference to `typeinfo for char const*'
/usr/bin/ld: queue_arr2.cpp:(.text._ZN5Queue10two_to_oneEv[_ZN5Queue10two_to_oneEv]+0x87): undefined reference to `__cxa_throw'
collect2: error: ld returned 1 exit status
queue_arr2.cpp همون فایل اصلی من هست
« آخرین ویرایش: 18 خرداد 1400، 01:05 ب‌ظ توسط Reza Hosseinzadeh »
جست و جو کنید و چیز های جدید بیابید

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : ارور در gcc
« پاسخ #16 : 18 خرداد 1400، 01:16 ب‌ظ »
از سوئیچ‌ lm- استفاده کنید.
این سوییچ چیکار می کنه؟
خروجی کامپایل با این سوییچ:
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o: in function `_start':
(.text+0x24): undefined reference to `main'
/usr/bin/ld: /tmp/ccXUbX2p.o: in function `__static_initialization_and_destruction_0(int, int)':
Stack.cpp:(.text+0x29): undefined reference to `std::ios_base::Init::Init()'
/usr/bin/ld: Stack.cpp:(.text+0x3e): undefined reference to `std::ios_base::Init::~Init()'
collect2: error: ld returned 1 exit status

دقیقا نمی‌دونم چی‌کار می‌کنه. وقتی از math.h توی c استفاده می‌کنم، باید سوئیچ lm- رو هم بزارم وگرنه خطایی شبیه خطای شما می‌گیرم. اینو فکر کنم توی askubuntu پیدا کردم. مطمئن نیستم.

حالا که مشکل اسم main رو حل کردید، دوباره سعی کنید با سوئیچ lm- کامپایل کنید.
میدونید که زکات علم نشر آن است

آفلاین sd70

  • Jr. Member
  • *
  • ارسال: 96
  • جنسیت : پسر
پاسخ : ارور در gcc
« پاسخ #17 : 18 خرداد 1400، 01:33 ب‌ظ »
من کد شما رو بررسی کردم و تنها اشکالش همون اشتباه تایپی تابع main بود و مشکل دیگری نداره و خروجیش هم به این صورته:
6
2
3
4
5

البته توجه داشته باشید که include کردن فایل cpp روش صحیحی نیست و به جاش باید از فایل های هدر استفاده بشه. اگه مشکل تون حل نشد لطفا تمام فایلهای کد رو بصورت یک جا آپلود کنید و این رو هم بگید که برای کامپایل دقیقا دستور رو به چه شکلی وارد می کنید

فلگ l برای لینک کردن کاربرد داره. مثلا چنان چه از math.h (یا cmath در سی++) استفاده کنید باید به لینکر اعلام کنید که از این لایبرری استفاده کنه و برای این کار از -lm استفاده میشه. با توجه به اینکه در کد شما از هدر cmath استفاده نشده نیازی به این کار نیست.
« آخرین ویرایش: 18 خرداد 1400، 01:39 ب‌ظ توسط sd70 »

آفلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1269
  • جنسیت : پسر
پاسخ : ارور در gcc
« پاسخ #18 : 19 خرداد 1400، 01:15 ق‌ظ »
همانطور که کاربر sd70 گفتند برنامه با اصلاح اشکال تایپی main مشکلی نداره
کامپایل و اجرا میشه
$ g++ code.cpp stack.cpp -o executable
$ ./executable
6
2
3
4
5

به پیوست بنگرید.

« آخرین ویرایش: 19 خرداد 1400، 01:18 ق‌ظ توسط esmaeelE »

آفلاین alend

  • High Hero Member
  • *
  • ارسال: 1319
پاسخ : ارور در gcc
« پاسخ #19 : 19 خرداد 1400، 07:59 ق‌ظ »


البته توجه داشته باشید که include کردن فایل cpp روش صحیحی نیست و به جاش باید از فایل های هدر استفاده بشه. اگه مشکل تون حل نشد لطفا تمام فایلهای کد رو بصورت یک جا آپلود کنید و این رو هم بگید که برای کامپایل دقیقا دستور رو به چه شکلی وارد می کنید


دقیقاً. باید از ماکرو ها برای گارد هدر هم استفاده کرد.

https://www.learncpp.com/cpp-tutorial/header-guards/
« آخرین ویرایش: 19 خرداد 1400، 08:02 ق‌ظ توسط alend »

آفلاین 🇮🇷

  • رضا حسین‌زاده
  • High Hero Member
  • *
  • ارسال: 1001
  • کنجکاو
    • Reza
پاسخ : ارور در gcc
« پاسخ #20 : 19 خرداد 1400، 02:35 ب‌ظ »
همانطور که کاربر sd70 گفتند برنامه با اصلاح اشکال تایپی main مشکلی نداره
کامپایل و اجرا میشه
$ g++ code.cpp stack.cpp -o executable
$ ./executable
6
2
3
4
5

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

آفلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1269
  • جنسیت : پسر
پاسخ : ارور در gcc
« پاسخ #21 : 19 خرداد 1400، 10:43 ب‌ظ »
همانطور که کاربر sd70 گفتند برنامه با اصلاح اشکال تایپی main مشکلی نداره
کامپایل و اجرا میشه
$ g++ code.cpp stack.cpp -o executable
$ ./executable
6
2
3
4
5

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

درون پوشه دستور زیر را اجرا کنید و خروجی را به صورت کامل قرار دهید.
ls
g++ code.cpp stack.cpp -o executable


آفلاین 🇮🇷

  • رضا حسین‌زاده
  • High Hero Member
  • *
  • ارسال: 1001
  • کنجکاو
    • Reza
پاسخ : ارور در gcc
« پاسخ #22 : 20 خرداد 1400، 09:52 ق‌ظ »
درون پوشه دستور زیر را اجرا کنید و خروجی را به صورت کامل قرار دهید.
ls
g++ code.cpp stack.cpp -o executable
بالاخره کامپایل شد. ممنونم که وقت گذاشتید. فکر کنم توی include کردن iostream مشکلی مثل دوبار include کردن یا چیزی مشابه این بود. باز هم تشکر
جست و جو کنید و چیز های جدید بیابید

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : ارور در gcc
« پاسخ #23 : 20 خرداد 1400، 02:14 ب‌ظ »
پس یه (حل شد) به عنوان موضوع اضافه کنید.
میدونید که زکات علم نشر آن است

آفلاین alend

  • High Hero Member
  • *
  • ارسال: 1319
پاسخ : ارور در gcc
« پاسخ #24 : 20 خرداد 1400، 05:27 ب‌ظ »
درون پوشه دستور زیر را اجرا کنید و خروجی را به صورت کامل قرار دهید.
ls
g++ code.cpp stack.cpp -o executable
بالاخره کامپایل شد. ممنونم که وقت گذاشتید. فکر کنم توی include کردن iostream مشکلی مثل دوبار include کردن یا چیزی مشابه این بود. باز هم تشکر
من پست مربوط به گارد را به همین خاطر گذاشتم.

آفلاین 🇮🇷

  • رضا حسین‌زاده
  • High Hero Member
  • *
  • ارسال: 1001
  • کنجکاو
    • Reza
پاسخ : ارور در gcc
« پاسخ #25 : 20 خرداد 1400، 11:53 ب‌ظ »
درون پوشه دستور زیر را اجرا کنید و خروجی را به صورت کامل قرار دهید.
ls
g++ code.cpp stack.cpp -o executable
بالاخره کامپایل شد. ممنونم که وقت گذاشتید. فکر کنم توی include کردن iostream مشکلی مثل دوبار include کردن یا چیزی مشابه این بود. باز هم تشکر
من پست مربوط به گارد را به همین خاطر گذاشتم.
متشکرم
جست و جو کنید و چیز های جدید بیابید

آفلاین 🇮🇷

  • رضا حسین‌زاده
  • High Hero Member
  • *
  • ارسال: 1001
  • کنجکاو
    • Reza
پاسخ : ارور در gcc
« پاسخ #26 : 20 خرداد 1400، 11:53 ب‌ظ »
پس یه (حل شد) به عنوان موضوع اضافه کنید.
اضافه کردم
جست و جو کنید و چیز های جدید بیابید