相关疑难解决方法(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默认构建选项?
我需要从源代码构建opencv库,之前我想知道什么是默认的构建设置.

cmake

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

使用cmake为gdb创建符号表

有没有办法只使用cmake为gdb创建符号表?

cmake debug-symbols

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

#ifdef与CMake独立于平台的DEBUG

我正在使用CMake在Windows(Visual Studio)以及Linux机器(gcc)上构建我的项目.我想将一些代码标记为"仅调试",就像使用

#ifdef DEBUG
//some logging here
#endif
Run Code Online (Sandbox Code Playgroud)

问题是:CMake"Debug"构建类型中的所有平台上都有哪些编译器定义?DEBUG似乎不存在.(我希望只有在构建类型为Debug时才能进行日志记录或其他任何操作.)

c c++ cmake

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

GCC何时定义NDEBUG?

可能重复:
-DNDEBUG通常来自哪里?

我在我的代码中使用断言,但我不知道它们是否会触发,因为我不知道是否定义了NDEBUG.我是否应该在编译期间明确指定-DNDEBUG?

c++ gcc

9
推荐指数
1
解决办法
2万
查看次数

对于Cmake,您可以使用`add_compiler_flags()`命令修改发布/调试编译器标志吗?

在手册页中add_compile_options()我没有看到任何提及如何修改Release/Debug编译器标志.你可以add_compiler_options()用来修改Release/Debug编译器标志吗?如果有,怎么样?

如果不是,推荐的规范方法是修改发布/调试cmake变量[1],如下所述

[1]即设置cmake变量CMAKE_ <LANG> _FLAGS_ <TYPE>(对于lang c/c ++,它将是:CMAKE_CXX_FLAGS_RELEASE,CMAKE_CXX_FLAGS_DEBUG,CMAKE_C_FLAGS_RELEASE,CMAKE_C_FLAGS_DEBUG).

c++ cmake

4
推荐指数
1
解决办法
4268
查看次数

链接:致命错误 LNK1104:无法打开文件“python37_d.lib”

我试图在 Visual Studio 2013 的 C++ 应用程序中集成 Python 解释器,尽管添加了 INCLUDES 和 ENV VARIABLES,例如 LIB 和 LIBPATH,但编译会抛出一个错误

链接:致命错误 LNK1104:无法打开文件“python37_d.lib”。

我尝试了所有可能的谷歌建议,但仍然无法摆脱这个错误。对此的任何帮助将不胜感激。

c++ python

3
推荐指数
1
解决办法
3841
查看次数

使用调试符号和 cmake 编译项目的正确方法

CMAKE_BUILD_TYPE当我想获取调试或发布项目构建时,建议将这里作为参数传递给 cmake。我正在尝试用 cmake编译libharu,我想用调试符号编译它。我搜索了libharu 中包含的 CMakeLists.txt 以查找以下字符串:

CMAKE_BUILD_TYPE
CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_DEBUG
Run Code Online (Sandbox Code Playgroud)

但我什么也没找到。我的问题是,指定libharu的 CMakeLists.txtCMAKE_BUILD_TYPE何时没有提及它是否有意义?如果没有,我如何使用调试符号编译libharu

PS:我注意到使用 cmake 为 Visual Studio 2013 生成的项目设置了 Debug/Win32,这是否足够?在 CMakeLists.txt 中的何处指定了此信息?

PPS:我想这个问题在很大程度上取决于特定的项目,但一般来说有什么方法可以做到这一点吗?我的意思是,CMAKE_BUILD_TYPE=Debug总是创建 Debug 版本还是我应该注意其他一些事情?

谢谢

cmake libharu cmake-gui

2
推荐指数
1
解决办法
7145
查看次数

使用 cmake 编译时 Valgrind 不显示行号

我正在使用命令编译我的项目cmake .. -G "CodeBlocks - Ninja,它工作正常,但是当我运行 valgrind 时,它不显示任何行号。这是我正在使用的 valgrind 命令:valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --log-file="log.txt" ./pony_gpExe

以下是输出的示例:

==5402== Use of uninitialised value of size 8
==5402==    at 0x40447B: get_double_arr_length (in /home/robbie/Dropbox/MIT/pony_gp_ubuntu/build/pony_gpExe)
==5402==    by 0x405184: get_test_and_train_data (in /home/robbie/Dropbox/MIT/pony_gp_ubuntu/build/pony_gpExe)
==5402==    by 0x4027B3: setup (in /home/robbie/Dropbox/MIT/pony_gp_ubuntu/build/pony_gpExe)
==5402==    by 0x402861: main (in /home/robbie/Dropbox/MIT/pony_gp_ubuntu/build/pony_gpExe)
==5402==  Uninitialised value was created by a stack allocation
==5402==    at 0x405149: get_test_and_train_data (in /home/robbie/Dropbox/MIT/pony_gp_ubuntu/build/pony_gpExe)
Run Code Online (Sandbox Code Playgroud)

不确定这是否有帮助,但这是我的主要 CMakeLists.txt:

cmake_minimum_required(VERSION 3.4.3)
project (pony_gp)
set(DIR ${pony_gp_SOURCE_DIR})

file(GLOB_RECURSE pony_gp_SOURCES "${DIR}/src/*.c")
file(GLOB_RECURSE pony_gp_HEADERS …
Run Code Online (Sandbox Code Playgroud)

c debugging valgrind cmake

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

标签 统计

cmake ×7

c++ ×4

c ×2

build ×1

build-system ×1

cmake-gui ×1

debug-symbols ×1

debugging ×1

gcc ×1

libharu ×1

python ×1

valgrind ×1