我在将我的默认构建配置设置为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文件中指定的相反.我究竟做错了什么?我在那里看了一些其他的问题,但没有看到任何特定于这个问题的东西.
如何在命令行中列出cmake默认构建选项?
我需要从源代码构建opencv库,之前我想知道什么是默认的构建设置.
我正在使用CMake在Windows(Visual Studio)以及Linux机器(gcc)上构建我的项目.我想将一些代码标记为"仅调试",就像使用
#ifdef DEBUG
//some logging here
#endif
Run Code Online (Sandbox Code Playgroud)
问题是:CMake"Debug"构建类型中的所有平台上都有哪些编译器定义?DEBUG似乎不存在.(我希望只有在构建类型为Debug时才能进行日志记录或其他任何操作.)
可能重复:
-DNDEBUG通常来自哪里?
我在我的代码中使用断言,但我不知道它们是否会触发,因为我不知道是否定义了NDEBUG.我是否应该在编译期间明确指定-DNDEBUG?
在手册页中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).
我试图在 Visual Studio 2013 的 C++ 应用程序中集成 Python 解释器,尽管添加了 INCLUDES 和 ENV VARIABLES,例如 LIB 和 LIBPATH,但编译会抛出一个错误
链接:致命错误 LNK1104:无法打开文件“python37_d.lib”。
我尝试了所有可能的谷歌建议,但仍然无法摆脱这个错误。对此的任何帮助将不胜感激。
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 .. -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)