我正在创建一个应用程序,它由两个静态库和一个可执行文件组成。
我们称这两个静态库为: libusefulclass.a libcore.a
应用程序为: myapp
libcore 实例化并使用在 libusefulclass 中定义的类(我们称之为 UsefulClass)
现在,如果我以以下方式链接应用程序:
g++ -m64 -Wl,-rpath,/usr/local/Trolltech/Qt-4.5.4/lib -o myapp src1.o src2.o srcN.o -lusefulclass -lcore
链接器抱怨在libusefulclass中找不到方法:
undefined reference to `UsefulClass::foo()'
我找到了一个解决方法: 如果UsefulClass也在可执行文件的源文件中被实例化,那么应用程序将没有任何问题地链接。 我的问题是:有没有更好的方法让libcore引用在libusefulclass中定义的方法,或者静态库不能相互链接? 谢谢您! 附言:如果有关系的话:该应用程序使用Qt使用C++开发,但我觉得这不是Qt问题,而是一般的库问题。