我的目录中有两个子目录(项目),带有自己的CMakeLists.txt文件,如
main_dir:
CMakeLists.txt
src/
dir_one/
CMakeLists.txt
src/
dir_two/
CMakeLists.txt
src/
我的CMakeLists.txt看起来像
.....
target_link_libraries (
main
/usr/lib/dir_one.so
/usr/lib/dir_two.so
)
如何使dir_one和dir_two在main build中构建为静态,以便轻松部署? (与静态链接)。
答案 0 :(得分:2)
只需使用target_link_libraries中的项目名称而不是.so文件。 CMake将正确设置所有依赖项,并链接它们的输出。
target_link_libraries(main dir_one dir_two)
来自doc:
的引用如果库名称与项目中另一个目标的库名称匹配,则会在构建系统中自动添加依赖项,以确保链接库在目标链接之前是最新的。以 - ,但不是-l或-framework开头的项目名称被视为链接器标志。