如何使用cmake正确链接具有依赖项的3个静态库?

时间:2019-04-17 18:38:39

标签: c++ cmake linker dependencies static-libraries

我要导入三个静态库(A.a,B.a,C.a),其中C依赖于A和B,B依赖于A。在我的程序中,我使用C中的函数。

(Ubuntu 16.04和CMake 3.5.1)在我的cmake文件中,我使用target_link_libraries()将A.a,B.a,C.a链接到我的可执行文件。但是,编译时会显示“对funcA()的未定义引用”,其中funA是C.a中的未定义符号(用nm命令显示),该功能实际上在A.a中定义为文本符号。

target_link_libraries(myExec A.a B.a C.a)

我希望看到没有这些未定义符号的正确链接静态库。

更新 正如Mike在评论中提到的:

  

库必须在链接序列中出现在它依赖的库之前

因此

target_link_libraries(myExec C.a B.a A.a)

是正确的顺序

0 个答案:

没有答案