انجمنهای فارسی اوبونتو
		کمک و پشتیبانی => برنامهسازی => نویسنده: 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
 این کتابخانه رو برای یک کار علمی نیاز دارم. ممنون میشم اگر کسی بتونه کمک کنه
 متشکرم
- 
				دوست عزیز کتاب خانه ها باید به نرم افزار شما لینک بشن . در حقیقت فایل های هدر تنها مانند آدرس عمل نی کنند و نیاز هست که شما اون ها رو به نرم افزار خودتون لینک کنین
 
 برای لینک کردن یک لایبرری در لینوکس می شه از نرم افزار pkg-config استفاده کرد برای اطلاعات بیشتر در رابطه با linking shared library در گوگل سرچ کن
- 
				اسم کتابخونه رو با سوییچ l به gcc بدین. البته توصیه میشه که برای راحتی کار از IDEهایی مثل eclipse استفاده کنین