CMake ..在父目录中生成输出

时间:2014-07-22 00:17:07

标签: cmake boringssl

我正在尝试构建BoringSSL by Google。 BUILDING文件说明清楚地表明输出应该在构建目录下。

我有一个目录project,在其下面我创建了buildproject下有一个CMakeLists.txt文件,我希望它在build目录中构建。但是,当我从cmake ..内部运行build时,makefile将在project目录而不是当前的build目录中生成。

我发现的大多数指令似乎表明cmake的输出进入当前目录,无论CMakeLists.txt位于何处。我做错了什么?

2 个答案:

答案 0 :(得分:1)

事实证明,因为我在顶级project目录中运行了cmake,所以从build内部再次运行它并没有产生新的输出。从project中删除CMakeCache.txt应该可以解决问题。

答案 1 :(得分:0)

我制作了以下文件/目录:

.
`-- project
    |-- build
    `-- CMakeLists.txt

使用CMakeLists.txt内容:

PROJECT(TEST)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

然后我进入./project/build文件夹并运行cmake ..

[~/project/build] cmake ..
-- The C compiler identification is Intel 13.1.0.20130313
-- The CXX compiler identification is Intel 13.1.0.20130313
-- Check for working C compiler: /usr/local/bin/icc
-- Check for working C compiler: /usr/local/bin/icc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/local/bin/icpc
-- Check for working CXX compiler: /usr/local/bin/icpc -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done
-- Build files have been written to: ~/project/build

所有生成的文件都在./project/build文件夹中。

尝试打开您的CMakeCache.txt文件(它应该在您运行CMake的目录中生成)并检查TEST_BINARY_DIR和CMAKE_CACHEFILE_DIR等变量。例如,它们应设置为您的构建目录。