在cmake中我如何从子目录安装共享库

In cmake how can I install shared library from subdirectory?

本文关键字:子目录 安装 共享 cmake      更新时间:2023-10-16

例如,如果我有一个项目:

trunk
   |_ CMakeLists.txt
   |_ src
   |   |_ CMakeLists.txt
   |   |_ componentA
   |   |_ componentB
   | 
   |_ test
       |_ unit

是否可以安装libComponentA和libComponentB从trunk/CMakeLists.txt或trunk/src/CMakeLists.txt?我试过了,但是它抱怨我的目标

在此目录中不存在

经过一些谷歌似乎cmake安装(目标…)命令只搜索当前目录,我如何解决这个问题?

可以为install命令指定全路径。您可以使用cmake变量,如${CMAKE_SOURCE_DIR}/(主干目录)和${CMAKE_CURRENT_SOURCE_DIR}/(当前CMakeLists.txt文件的位置)来简化您的工作。