使用 cmake 如何静态链接一些库和动态链接其他库?
Posted
技术标签:
【中文标题】使用 cmake 如何静态链接一些库和动态链接其他库?【英文标题】:with cmake how to link some libs statically and others dynamically? 【发布时间】:2013-06-18 16:52:02 【问题描述】:如何告诉 CMake 静态链接一些库和动态链接其他库?
我想编译一个静态链接到所有依赖库的 C++ exe,除了 glic
谢谢
【问题讨论】:
【参考方案1】:库的 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)
【讨论】:
以上是关于使用 cmake 如何静态链接一些库和动态链接其他库?的主要内容,如果未能解决你的问题,请参考以下文章