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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: emab در 07 مهر 1390، 06:25 ب‌ظ

عنوان: خطا در برنامه c++
ارسال شده توسط: emab در 07 مهر 1390، 06:25 ب‌ظ
سلام
دوستان من یک کتابخانه c++ برنامه یک سری الگوریتم های خاص از سایت http://goblin2.sourceforge.net/ (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

این کتابخانه رو برای یک کار علمی نیاز دارم. ممنون میشم اگر کسی بتونه کمک کنه
متشکرم
عنوان: پاسخ به: خطا در برنامه c++
ارسال شده توسط: bijanbina در 08 مهر 1390، 04:54 ق‌ظ
دوست عزیز کتاب خانه ها باید به نرم افزار شما لینک بشن . در حقیقت فایل های هدر تنها مانند آدرس عمل نی کنند و نیاز هست که شما اون ها رو به نرم افزار خودتون لینک کنین

برای لینک کردن یک لایبرری در لینوکس می شه از نرم افزار pkg-config استفاده کرد برای اطلاعات بیشتر در رابطه با linking shared library در گوگل سرچ کن
عنوان: پاسخ به: خطا در برنامه c++
ارسال شده توسط: دانیال بهزادی در 09 مهر 1390، 08:39 ب‌ظ
اسم کتابخونه رو با سوییچ l به gcc بدین. البته توصیه می‌شه که برای راحتی کار از IDEهایی مثل eclipse استفاده کنین