首页 > 解决方案 > 子目录内的 cmake_binary_dir 更改

问题描述

我在我的顶级 CMakeLists.txt 中有这个:

set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/cmakebuild/bin)
MESSAGE("Value is: \n${CMAKE_BINARY_DIR} ")
add_subdirectory("sub/subA")

在子目录 CMakeLists.txt 中,我有这个

MESSAGE("SUBDIR Value is: \n${CMAKE_BINARY_DIR} ")

但是的输出cmake

Value is:
/home/me/myproj/cmakebuild/bin
SUBDIR Value is:
/home/me/myproj/cmakebuild

为什么最后的 /bin 不存在?

标签: cmake

解决方案


永远不要设置像CMAKE_BINARY_DIR,这样的变量CMAKE_CURRENT_BINARY_DIR- CMake 会自动设置它们,并且不希望它们在外部被更改。

设置这些变量只会让 CMake 感到困惑,事情变得很奇怪。


推荐阅读