c++ - 更改 CLion 中的默认 CMakeLists.txt 以包含警告

标签 c++ cmake clion

在 CLion 中,默认的 CMakeLists.txt 仅设置 C++11 编译器标志。我希望在我的所有项目中默认设置警告和迂腐标志。

这是默认的

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

我希望默认使用它,这样我就不必在每次创建新项目时都更改它

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -W -Wall -Wextra -pedantic")

在“设置”-“文件和代码模板”中,我可以更改 C++ header /源模板,但不能更改 CMakeLists.txt 模板。有什么方法可以更改 CLion 中的默认 CMakeLists.txt 模板?

最佳答案

请注意,这不能通过编辑 CmakeLists.txt 来覆盖!

另外,我建议对相关文件进行备份。

转到您安装/解压缩 CLion 的位置 然后

bin/cmake/share/cmake-3.2/Modules

并查找名为“CMakeCXXInformation.cmake”的文件

只需按照此模型编写/粘贴您的标志即可:

#This should be my default compiler flags
SET(CMAKE_CXX_FLAGS "-std=c++11 -Wall -Werror -Wextra -pedantic -
Wshadow -Woverloaded-virtual -Winvalid-pch -Wcast-align -Wformat=2 -
Wformat-nonliteral -Wmissing-declarations -Wmissing-format-attribute -
Wmissing-include-dirs -Wredundant-decls -Wswitch-default")

您可以将其写入/粘贴到任何您喜欢的位置 - 文件的顶部/底部。

保存文件,重新加载你的 Cmake 项目。享受吧!

(CmakeList.txt中设置编译标志的行可以忽略/删除)

可能是更好的解决方案:

由于这似乎不受任何 Intellij 产品的支持,我认为最好的解决方案是,如果您希望代码仍然可移植,则使用[实时模板] ( https://www.jetbrains.com/idea/help/live-templates.html )

我现在使用一个名为 flags 的实时模板,我只是在其中粘贴了我常用的标志和一些其他代码花絮。 因此,每当我在 CMakeLists.txt 中时,我都可以键入标志,然后按 Tab 键展开该文本。 您当然可以有多个版本的标志,并且为它们使用实时模板将减轻每次都必须单独键入它们的负担。

关于c++ - 更改 CLion 中的默认 CMakeLists.txt 以包含警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30286000/

相关文章:

c++ - 无法与服务器正在监听的端口进行通信

c++ - 如何在 Direct2D 中创建透明位图

installation - 在 CMake 中条件排除已安装的文件

cmake - check_library_exists 无法正常工作

c++ - wxWidgets C++ 的静态编译

c - 如何在 CLion 中添加链接器标志

c++ - CLion 和 Crypto++ 库

c++ - 是否可以对所有翻译单元进行定义?

c++ - 仅将 vtkImageData 的结构复制到另一个用零填充的 vtkImageData

c++ - 使用 cmake 时对 `glfwInit' 问题的 undefined reference Clion OpenGL