我为静态库做了一个构建,然后放到了一个位置。现在,当我构建我的源代码时,我得到了用于跨库调用的UNDEFINED REFERENCES。例如:
/home/xyz/lib/libA.a(ClassA.a):对classB::funB()的未定义引用
这里,classB.a也是一个静态库。
在我的源代码的项目文件中,静态链接顺序是:
LIBS+= -lclassB -lclassA现在,当我反转库顺序时,我开始在库A中函数调用的库B类中出现错误。
发布于 2011-07-31 18:45:36
对于这种情况,你通常需要。
LIBS += -lclassA -lclassB -lclassA链接classA库两次有助于解决循环依赖关系。
发布于 2011-08-09 05:49:00
好了,朋友们,我找到了解决办法。
我在gcc身上使用了qmake构建工具,我只是想告诉qmake,我的一些静态库是循环依赖的。
所以我用qmake链接器标志修改了我的.pro文件。
QMAKE_LFLAGS += -Wl , --start-group --end-groupgcc的文档说,你需要把你的档案名放在--开始组-结束组之间,但是qmake很聪明,可以找到依赖的库,并且会自动地这样做。
玩得开心点。
https://stackoverflow.com/questions/6891852
复制相似问题