如何将链接的静态库和共享库与CMake混合使用

问题描述 投票:0回答:1

我有一个在Linux上构建的共享库libtest.so。它链接到几个共享库。现在,我有一些第三方静态库可以链接到libtest.so。我知道可以通过直接调用gcc来实现:

Can I mix static and shared-object libraries when linking?

我的问题是如何使用CMake做同样的事情?

dynamic cmake static-libraries
1个回答
0
投票

我没看到问题。使用静态库,您可以执行以下操作:

target_link_libraries(my_target_or_executable /home/me/somedir/mymagiclib.a)

target_link_libraries(my_target_or_executable -L/home/me/somedir/)
target_link_libraries(my_target_or_executable mymagiclib.a)

我昨天也以这种方式链接到共享库。因为我与地址清洗器发生冲突。

但是请注意,链接到共享库之间的区别。对于您的libtest.a,您可以执行以下操作:

target_link_libraries(my_target_or_executable -ltest)

注意,您在此处删除了lib前缀。但是当您要手动指定库时,请勿执行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.