用cmake如何静态地链接一些libs和其他动态?

时间:2013-06-18 16:52:02

标签: c++ dynamic static linker cmake

如何告诉CMake静态链接某些lib和动态链接其他?

我想编译一个静态链接到除glic

之外的所有依赖库的C ++ exe

由于

1 个答案:

答案 0 :(得分:0)

库的CMake方法是首先使用find_library找到它们,然后使用target_link_libraries中的结果。

find_library调用期间选择使用静态或动态库:

  • 如果您不介意使用哪个版本,请致电find_library(MYLIB mylib)

  • 如果你想要一个静态库,请使用find_library(MYLIB libmylib.a)(对于linux来说,你将在windows上搜索.lib等)

  • 如果您想要动态库,请使用find_library(MYLIB libmylib.so)

然后测试您是否找到了if (MYLIB)的图书馆,并将其与您的目标相关联:target_link_libraries(mytarget ${MYLIB})