CMAKE添加子目录,该子目录不是真实目录下的子目录

Viv*_*oel 35 cmake

是否可以将兄弟目录作为子目录包含在cmake中?

就像是

A 
  CMakeLists.txt

B
  CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

和B包括A作为子目录?

DLR*_*ave 78

有可能,虽然可能不推荐......

您可以使用add_subdirectory命令的双参数形式将您想要的任何目录添加为"子"目录:

add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../A ${CMAKE_CURRENT_BINARY_DIR}/A)
Run Code Online (Sandbox Code Playgroud)

双参数形式的第二个参数指定将添加的子目录放在二进制目录的位置.

你一定要小心,有没有也是 B的另一种真实子目录也命名为"A",并且也add_subdirectory'd ......因为如果这样做,那么这将是一个错误,因为CMake的不能有两个不同的源目录映射到同一个构建目录.