相关疑难解决方法(0)

CakeKE_BUILD_TYPE未在CMakeLists.txt中使用

我在将我的默认构建配置设置为Release时遇到问题,在我的CMakeLists.txt文件中,我在文件顶部设置了CMAKE_BUILD_TYPE

#enable Release ALWAYS, configure vars
set(CMAKE_BUILD_TYPE Release)
set(EXECUTABLE_NAME "ParticleSimulator")
set(VERSION_MAJOR 0)
set(VERSION_MINOR 2)
Run Code Online (Sandbox Code Playgroud)

但是在构建我的项目并打开解决方案时,我总是会看到调试模式,这与我在CMakeLists文件中指定的相反.我究竟做错了什么?我在那里看了一些其他的问题,但没有看到任何特定于这个问题的东西.

CMakeLists.txt的要点

build cmake build-system

57
推荐指数
3
解决办法
3万
查看次数

立即构建工具,以便稍后在相同的CMake运行中使用

我有一个有趣的鸡蛋问题和一个潜在的解决方案(请参阅我的帖子回答),但该解决方案以不寻常的方式使用CMake.欢迎更好的替代方案或评论.

问题:

该问题的简单版本可以描述为具有以下特征的单个CMake项目:

  1. 其中一个构建目标是命令行可执行文件,我将其命名为mycomp,其源代码在a mycompdir中,并且无法对该目录的内容进行任何修改.
  2. 该项目包含文本文件(我将其称为foo.mybar.my),需要mycomp运行它们以生成一组C++源代码和标题以及一些 CMakeLists.txt定义从这些源构建的库的文件.
  3. 同一项目中的其他构建目标需要链接到由这些生成的CMakeLists.txt文件定义的库.这些其他目标也有#include一些生成标题的源.

您可以将mycomp视为类似编译器的内容,将第2步中的文本文件视为某种源文件.这提出了一个问题,因为CMake CMakeLists.txt在配置时需要文件,但mycomp在构建时间之前不可用,因此在第一次运行时不能及时创建CMakeLists.txt文件.

NON-解答:

通常情况下,基于ExternalProject的超级构建安排将是一个潜在的解决方案,但上面是我正在处理的实际项目的相当简化,我没有自由将构建分成不同的部分或执行其他大型规模重组工作.

cmake

15
推荐指数
1
解决办法
2821
查看次数

标签 统计

cmake ×2

build ×1

build-system ×1