我对 CMake 相当陌生,阅读了一些关于如何使用它的教程,并且写了一些复杂的50行 CMake 脚本,以便为3个不同的编译器编写一个程序。这可能就是我在 CMake 中的全部知识。
现在我的问题是,我有一些源代码,我不想触摸/混乱的文件夹时,我做的程序。我希望所有的 CMake 和 make
输出文件和文件夹都进入到 ../Compile/
中,所以我在 CMake 脚本中为此修改了一些变量,当我在笔记本电脑上做类似的事情时,它曾经起过作用:
Compile$ cmake ../src
Compile$ make
我现在所在的文件夹中有一个干净的输出,这正是我要找的。
现在我转移到另一台计算机,重新编译了 CMake 2.8.11.2,我几乎又回到了起点!它总是编译的东西到 src
文件夹中,我的 CMakeLists.txt
是位于。
我在 CMake 脚本中选择目录的部分如下:
set(dir ${CMAKE_CURRENT_SOURCE_DIR}/../Compile/)
set(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
set(LIBRARY_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${dir})
set(CMAKE_BUILD_FILES_DIRECTORY ${dir})
set(CMAKE_BUILD_DIRECTORY ${dir})
set(CMAKE_BINARY_DIR ${dir})
SET(EXECUTABLE_OUTPUT_PATH ${dir})
SET(LIBRARY_OUTPUT_PATH ${dir}lib)
SET(CMAKE_CACHEFILE_DIR ${dir})
而现在,它总是以:
-- Build files have been written to: /.../src
我错过了什么吗?