CMake将构建文件放在源目录中

基兰·布拉巴宗(Keeran Brabazon)

我是CMake的新手。一位朋友为我正在编写的项目编写了一个简单的CMakeLists.txt。我正在使用svn,并且刚刚将同一台计算机上的旧版本签出到另一个文件夹中。现在,在原始源目录(位于CMakeLists.txt所在的目录)中,创建目录“ build”,cd进入该目录,并暂时运行代码

cmake -DCMAKE_BUILD_TYPE=Debug ..

这很好地将所有文件放在构建目录中

-- Build files have been written to: ~/MixedFEMultigrid/build

现在,当我签出到另一个目录时,在该目录中创建另一个“ build”目录,然后运行CMake命令,我得到以下内容

-- Build files have been written to: ~/oldCode

其中,oldCode实际上是父目录。我不知道为什么会这样。谁可以给我解释一下这个?完整的CMakeLists.txt文件如下所示,

cmake_minimum_required (VERSION 2.6)
project (MixedFEMultigrid)
FIND_PACKAGE(LAPACK REQUIRED)
set( SRC_FILES  multigrid.c 
  gridHandling.c
  interpolation.c
  linApprox.c
  params.c
  sparseMatrix.c
  testing.c
  richardsFunctions.c
  definitions.c
  newtonIteration.c
  )

#Adds the executable with all the dependencies
add_executable (multigrid ${SRC_FILES})

#Specifies the libraries to link to the target
TARGET_LINK_LIBRARIES(multigrid ${LAPACK_LIBRARIES} m)

# Update if necessary
set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic -fstrict-aliasing -std=c99 -O3")

根据escrafford的评论,我正在更新以显示我在命令行上所做的事情。

cd ~
mkdir oldCode
cd oldCode
svn co <repository>
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..

然后将构建文件放入目录“ oldCode”而不是“ build”目录。另一方面,以下内容将构建文件放入“ build”目录中

cd ~
mkdir MixedFEMultigrid
cd MixedFEMultigrid
svn co <repository>
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
阿尔范

这来自于源内cmake执行

记住要删除cmake缓存:

$ rm CMakeCache.txt
$ mkdir debug
$ cd debug
$ cmake -DCMAKE_BUILD_TYPE=Debug ..

鉴于cmake不能提供干净的目标,这还有另一个好处

$ cd ..
$ rm -rf debug

等于make clean或更精确地make distclean

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

cmake在源目录中构建,而不是PWD

将html文件从源目录复制到构建目录

CMAKE在构建文件中创建另一个目录

如何更改 cmake 缓存和构建文件目录

如何在资源目录中的Java中创建文件

使用CMake将文件从源目录复制到二进制目录

为什么将ClojureScript源目录放在:source-paths中?

CMake ninja with coverage 将 gcno 文件放在根二进制目录中

将读取的文件放在目录中

忽略资源目录中的特定文件

如何获取源目录中包含的文件?

Nuget 可以在安装过程中创建文件夹结构或将文件放在特定的输出目录中吗?

cmake 无法生成 sfml 构建文件

CMake:将文件从构建目录复制到源directoy

如何告诉CMake链接源目录中的静态库?

CMAKE指定不同的源目录

使用文件结构将所有文件从源目录复制到C#中的目标目录

使用CMake在项目构建文件夹中创建git commit id文件

ExternalProject错误:文件试图在源目录中创建目录

cmake -H 为 CMake 项目生成构建文件?

设置GOCACHE =“ on”将一堆文件放在on /目录中

将文件放在特定目录中时自动重命名

如何将文件名放在命令目录中?

将OBJ文件放在MAKEFILE的子目录中

使用Spring将文件保存到资源目录

如何在 spring boot gradle 项目的 .jar 根目录中构建文件夹?

Eclipse试图在我的.svn目录中构建文件...如何告诉它停止?

如何从资源目录中的zip文件中获取BufferredReader?

Automake:为什么我的Makefile从源目录而不是构建目录中选择文件?