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

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

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


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

نویسنده موضوع: خطا در برنامه c++  (دفعات بازدید: 2329 بار)

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

آفلاین emab

  • Jr. Member
  • *
  • ارسال: 73
  • من آن موجم که آرامش ندارم، به آسانی سر سازش ندارم!
    • مـــوج
خطا در برنامه c++
« : 07 مهر 1390، 06:25 ب‌ظ »
سلام
دوستان من یک کتابخانه c++ برنامه یک سری الگوریتم های خاص از سایت http://goblin2.sourceforge.net/ گرفتم.
من با کمک مطالبی که در مستند برنامه نوشته شده بود، این کتابخانه را در اوبونتو نصب کردم. حالا header file مربوط به این کتابخانه در دسترس قرار گرفته (در پوشه /usr/include مشاهده می شود).
اما وقتی یک برنامه می نویسم که از این header file استفاده میکنه با خطای عجیب مواجه می شم:

متن برنامه:
#include<goblin.h>
using namespace std;

int main()
{
return 0;
}

متن خطا:
$ g++ -o test.o test.cpp
/tmp/cc83Z16B.o: In function `goblinRootObject::~goblinRootObject()':
test.cpp:(.text._ZN16goblinRootObjectD1Ev[goblinRootObject::~goblinRootObject()]+0x10): undefined reference to `goblinNObjects'
test.cpp:(.text._ZN16goblinRootObjectD1Ev[goblinRootObject::~goblinRootObject()]+0x18): undefined reference to `goblinNObjects'
test.cpp:(.text._ZN16goblinRootObjectD1Ev[goblinRootObject::~goblinRootObject()]+0x2c): undefined reference to `goblinRootObject::operator delete(void*)'
/tmp/cc83Z16B.o: In function `goblinRootObject::~goblinRootObject()':
test.cpp:(.text._ZN16goblinRootObjectD0Ev[goblinRootObject::~goblinRootObject()]+0x10): undefined reference to `goblinNObjects'
test.cpp:(.text._ZN16goblinRootObjectD0Ev[goblinRootObject::~goblinRootObject()]+0x18): undefined reference to `goblinNObjects'
test.cpp:(.text._ZN16goblin

این کتابخانه رو برای یک کار علمی نیاز دارم. ممنون میشم اگر کسی بتونه کمک کنه
متشکرم
من آن موجم که آرامش ندارم، به آسانی سر سازش ندارم!
http://emab.blogfa.com

آفلاین bijanbina

  • Full Member
  • *
  • ارسال: 200
  • جنسیت : پسر
  • جذاب دو عالم
    • بیژن بینایی
پاسخ به: خطا در برنامه c++
« پاسخ #1 : 08 مهر 1390، 04:54 ق‌ظ »
دوست عزیز کتاب خانه ها باید به نرم افزار شما لینک بشن . در حقیقت فایل های هدر تنها مانند آدرس عمل نی کنند و نیاز هست که شما اون ها رو به نرم افزار خودتون لینک کنین

برای لینک کردن یک لایبرری در لینوکس می شه از نرم افزار pkg-config استفاده کرد برای اطلاعات بیشتر در رابطه با linking shared library در گوگل سرچ کن

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ به: خطا در برنامه c++
« پاسخ #2 : 09 مهر 1390، 08:39 ب‌ظ »
اسم کتابخونه رو با سوییچ l به gcc بدین. البته توصیه می‌شه که برای راحتی کار از IDEهایی مثل eclipse استفاده کنین
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن