【问题标题】:Clion How to Add Debug Flags?Clion 如何添加调试标志?
【发布时间】:2021-10-21 23:32:14
【问题描述】:

我曾经这样编译我的程序:

g++ -std=c++11 –DNDEBUG –Wall *.cpp

现在我开始使用 Clion,它有以下 CMakeLists.txt,有人可以帮助我如何添加上述标志吗? (已添加 C++11 标志):

cmake_minimum_required(VERSION 3.20)
project(DS_WET1_PART1)

set(CMAKE_CXX_STANDARD 11)

add_executable(DS_WET1_PART1 main1.cpp library1.cpp library1.h linked_list.h node.h)

如果相关,我正在使用 macOS

【问题讨论】:

  • NDEBUG 已在 Release、MinSizeRel 和 RelWithDebInfo 配置类型中定义。最好通过在预设/CLion 设置中设置 CMAKE_CXX_FLAGS 来添加警告标志,而不是对其进行硬编码。
  • 您也不应该设置 CMAKE_CXX_STANDARD。而是写target_compile_features(DS_WET1_PART1 PRIVATE cxx_std_11)

标签: c++ c++11 debugging cmake clion


【解决方案1】:

在全球范围内,您可以使用:

add_compile_definitions(NDEBUG)
add_compile_options(-Wall)

否则,使用目标特定的调用:

target_compile_definitions(DS_WET1_PART1 PUBLIC NDEBUG)
target_compile_options(DS_WET1_PART1 PUBLIC -Wall)

【讨论】:

  • 什么是“NDEBUG”?
  • @Dano 这是你的 -DNDEBUG 预处理器定义。
  • DNDEBUG != NDEBUG
  • @Dano 是的。在您的命令的第一部分中,-D 表示 -> 定义一个指令。实际指令是NDEBUG。这就是为什么我只添加NDEBUG
  • DNDEBUG != NDEBUG 编译器标志-DNDEBUG 好像 编译一开始就有#define NDEBUG 1
猜你喜欢
  • 1970-01-01
  • 2021-11-06
  • 1970-01-01
  • 1970-01-01
  • 2016-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-26
相关资源
最近更新 更多