问候:
我有两个不同的 C++ 项目,每个项目都有自己的 CMakeList.txt 文件,该文件生成一个 .so 库文件。例如。这两个项目都在路径 trunk/A 和 trunk/B 下,它们包含文件:
- trunk/A/CMakeList.txt
- trunk/B/CMakeLists.txt
分别生成文件 A.so 和 B.so。出于实际原因,我想将项目 A 和 B 分开,但我还想有一个 CMakeList.txt 文件(例如trunk/CMakeList.txt) 将同时编译两个二进制文件。
我希望通过在 .pro 文件中包含一个 .pri 文件来复制类似于 qmake 可以实现的东西。因此,我尝试将两个 CMakeList 文件都包含在 trunk/CMakeList.txt 的以下代码中:
PROJECT(TEST)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
include(A/CMakeLists.txt)
include(B/CMakeLists.txt)
但是 CMake 不是那样工作的。包含的 CMakeList 文件中的内容是从 trunk 目录中评估的。例如,通过阅读 trunk/A/CMakeList.txt 中的以下行:
FILE(GLOB HEADERS *.h)
CMake 只会在 /trunk 中查找 *.h 文件,而不会在 /trunk/A 中查找
在 CMake 中是否有正确的方法来执行此操作?类似于 QMake 对 .pri 包含文件所做的事情?
提前致谢!
最佳答案
您需要使用ADD_SUBDIRECTORY
:
PROJECT(TEST)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
ADD_SUBDIRECTORY( A )
ADD_SUBDIRECTORY( B )
关于c++ - 在同一个 CMakeList 文件中导入两个不同的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28041836/