如何告诉CMake静态链接某些lib和动态链接其他?
我想编译一个静态链接到除glic
之外的所有依赖库的C ++ exe由于
答案 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})