VS2019中CMake项目如何指定c++语言标准

VS2019中CMake项目怎么指定语言标准

博主前几天在使用c++17新特性结构绑定时报错了,代码如下:

#include<bits/stdc++.h>
using namespace std;
int main() {
  unordered_map<int, int> mmid;
  for (auto [a, b] : mmid) {
    cout << a << ' ' << b << endl;
  }
  return 0;
}

后来查了一下发现CMake项目默认的c++语言标准是低于17的,所以就得指定一下语言版本才行。

有两种设置方法。第一种可以设置默认使用最新的语言标准。代码如下,添加到CMakeLists.txt文件中即可。

if (MSVC_VERSION GREATER_EQUAL "1900")
  include(CheckCXXCompilerFlag)
  CHECK_CXX_COMPILER_FLAG("/std:c++latest" _cpp_latest_flag_supported)
  if (_cpp_latest_flag_supported)
    add_compile_options("/std:c++latest")
  endif()
endif()

不过上面的方法太过于繁琐,不过没关系还有第二种更简洁的方法,只需要一行代码就可搞定。

set(CMAKE_CXX_STANDARD 17)

这样就能执行使用c++17这个标准了。如果想使用其他版本的语言标注,将17替换成对应版本即可。

PS:特别注意,添加上诉代码一定要放在CMakeLists文件的开头位置,不然是无效的。

cmake指定c++编译版本

修改 CMakeLists.txt 文件,添加如下命令

SET(CMAKE_C_COMPILER "/home/public/local/bin/gcc")

SET(CMAKE_CXX_COMPILER "/home/public/local/bin/g++")

Cmake编译使用C++11

cmake编译项目需要C++11特性的支持,只需要在CMakeLists.txt中加入:

add_definitions(-std=c++11)

这篇文章就介绍到这了,希望大家以后多多支持我们。

(0)

相关推荐

  • win10下VSCode+CMake+Clang+GCC环境搭建教程图解

    打算用C/C++把基本的数据结构与算法实现一遍, 为考研做准备, 因为只是想实现算法和数据结构, 就不太想用VisualStudio, 感觉VSCode不错, 遂在网上找了一些教程, 结合自己的需求, 配置一下开发环境. 安装软件 CMake CMake是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程; 官网下载安装, 傻瓜式操作; 记得把安装目录下的bin文件添加到系统环境变量, 这个可以在安装的时候勾选, 勾选了就不用自己添加了; 检测是否安装

  • 实例分享cmake编译一个简单c++项目(demo)

    下面通过一个小例子来说明cmake编译一个c++项目,生成可执行文件: 整理目录结构: CMake Lists.txt addlib build main.cpp 电脑上没有tree命令,也不大敢截图,将就着看看,其中build是cmake编译指定的路径,addlib下面也有一个头文件和源文件  ,还有一个CmakeLists.txt,可以看下: CMake Lists.txt library.cpp library.h 先看各个文件的代码: addlib/library.h: #ifndef

  • cmake 学习笔记

    最近接触到一些工程上的代码,都是用cmake来编译的,每次看着CMakeLists.txt 就各种懵逼,决定从0 开始学习 1 set set(var hello) message(${var}) 输出 hello 其实并不是单单输出hello,还有很多其他信息,会生成很多文件 files 2 CMAKE_C(XX)_FLAGS 变量 CMAKE_C_FLAGS 存放的内容会被传给 C 编译器,作用在所有的编译组态上.如果希望只针对特定一种组态有效,可以设定 CMAKE_C_FLAGS_<编译组

  • 超详细的cmake入门教程

    什么是cmake 你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MSnmake,BSD Make(pmake),Makepp,等等.这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别.这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译.而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作. CMake CMake附图 1 CMake就是针对上

  • VS2019中CMake项目的简单使用方法

    在使用Visual Studio的时候很多人都应该碰过在使用scanf的时候会报错等问题,虽然把SDL检查关了就能解决,但是此方法在博主使用VS2019的时候,却有失灵的时候.所以决定在日常刷题的时候使用CMake项目来编译代码.因为CMake项目并不会因为使用scanf而报错.以下是博主使用CMake的一些总结,仅供参考. 1.建立CMake项目文件 在创建项目界面可直接搜索cmake找到创建项目. 为了方便使用可以选择将解决方案和项目放到同一个目录. 2.CMakeList的配置 在创建好项

  • C/C++从零开始的cmake教程

    C/C++从零开始的CMake教程 如果你有过在linux系统上源码安装某款软件的经历,那么肯定对这三部曲一点都不会陌生--配置(configure).编译(make).安装(make install).几乎每次都是机器人般的操作,这背后其实是make(准确地说应该是GNU Make)在默默为你干了不少活. 1.编译hello.c--单一源文件的编译 //hello.c #include <stdio.h> int main(){ puts("hello, world!")

  • VS2019中CMake项目如何指定c++语言标准

    VS2019中CMake项目怎么指定语言标准 博主前几天在使用c++17新特性结构绑定时报错了,代码如下: #include<bits/stdc++.h> using namespace std; int main() { unordered_map<int, int> mmid; for (auto [a, b] : mmid) { cout << a << ' ' << b << endl; } return 0; } 后来查了一

  • 使用devenv在命令行中编译项目的方法

    本文介绍如何使用命令行运行Visual Studio编译项目. 一.devenv介绍 devenv是VisualStudio的可执行程序,一般在"..\Microsoft Visual Studio 12.0\Common7\IDE"下,用于运行Visual Studio. 使用devenv来编译项目的实例: devenv D:\Build\MyProject\Src\MyProject.sln /Build "Debug|x64" 二.devenv的使用帮助 1.

  • vscode中vue-cli项目es-lint的配置方法

    本文主要介绍vscode中 vue项目es-lint的配置,有任何错误的地方欢迎大佬指出 开始 安装插件 如图所示: vscode设置 安装完成之后,到vscode中的 文件-->首选项-->设置 中 添加如下代码 "eslint.autoFixOnSave": true, "eslint.validate": [ "javascript", "javascriptreact", "html",

  • Java中Maven项目导出jar包配置的示例代码

    具体代码如下所示: <!-- 第一种打包方式 (maven-jar-plugin), 将依赖包和配置文件放到jar包外 --> <build> <sourceDirectory>src/main/java</sourceDirectory> <resources> <resource> <directory>src/main/resources</directory> <!-- 将<director

  • 在Visual Studio 2019中修改项目名的方法

    1.需求场景 场景一:开始创建项目时,瞎起了一个名字,等后面开发了一部分功能后突然想改名. 场景二:想从一个老项目的基础上开发一个新项目. 2.操作步骤 2.1 重命名解决方案 [解决方案]右键选择[重命名],将OldSlnName重命名为NewSlnName 2.2 重命名项目名 [项目(OldProject)]右键选择[重命名],将OldProject重命名为NewProject 2.3 修改程序集名称及命名空间 [项目(NewProject)]右键选择[属性] 2.4 全局替换项目名 在整

  • VS2019中QT连接及使用的方法步骤

    qt连接VS 连接前提是在下载qt的时候将 MSVC 2017装上 点击扩展 选择管理扩展 搜索qt 选择下载 之后下载结束并重新打开后 会弹出一个 QT option 将路径填进去 VS中qt的使用 在qt中可以直接添加信号与槽 在vs中使用是不一样的 直接新建一个qt 项目 打开 设计师界面 在vs中 的头文件中添加 槽函数 .cpp中实现 比较让人在意的是 构造函数中 ui.setupUi(this) 在qt中是ui->setupUi(this) 在qt中 选择这个 编辑信号/槽工具 点击

  • Qt在vs2019中使用及设置方法

    下载对应Qt扩展 在vs2019中搜索下载qt vs tools 如图所示下载后会自动安装,完成后重启在进行下一步设置. 如果下载卡住或者太慢可以采用网站下载. 在visual studio网站中下载 如图下载后关闭所有有关vs2109程序,然后如正常安装软件双击运行就行. 在Qt网站中下载对应扩展addin 网站:https://download.qt.io/official_releases/vsaddin/ 选择一个版本就行,一般最新的就可以 如图下载后关闭所有有关vs2109程序,然后如

  • VS2019中Git源代码管理实现总结

    一.将VS2019中已有的项目与远程库进行连接   0.GitHub中创建远程库 首先在GitHub中创建一个库,并且这个库不要勾选上readme这个选项,(自己在尝试时如果Github上初始创建的项目带有readme,刚开始我进行推送总是报错,等待解答),创建完成之后剩下的操作在VS2019中进行 1.设置源代码插件 此步在VS中设置完一次后就可以不用再次设置了2.添加源代码管理 右击解决方案,添加到源代码管理 3.设置远程库地址 点击设置 选择存储库设置 点击编辑 4.将本地库内容提交 团队

  • 关于在IDEA中SpringBoot项目中activiti工作流的使用详解

    记录一下工作流的在Springboot中的使用,,顺便写个demo,概念,什么东西的我就不解释了,如有问题欢迎各位大佬指导一下. 1.创建springboot项目后导入依赖 <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-basic</artifactId> <version>6.0.0</version&

随机推荐