溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

VS2019中CMake項目如何指定c++語言標(biāo)準(zhǔn)

發(fā)布時間:2020-10-08 21:06:42 來源:腳本之家 閱讀:322 作者:江小舉 欄目:編程語言

VS2019中CMake項目怎么指定語言標(biāo)準(zhǔn)

博主前幾天在使用c++17新特性結(jié)構(gòu)綁定時報錯了,代碼如下:

#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;
}

后來查了一下發(fā)現(xiàn)CMake項目默認的c++語言標(biāo)準(zhǔn)是低于17的,所以就得指定一下語言版本才行。

有兩種設(shè)置方法。第一種可以設(shè)置默認使用最新的語言標(biāo)準(zhǔn)。代碼如下,添加到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()

不過上面的方法太過于繁瑣,不過沒關(guān)系還有第二種更簡潔的方法,只需要一行代碼就可搞定。

set(CMAKE_CXX_STANDARD 17)

這樣就能執(zhí)行使用c++17這個標(biāo)準(zhǔn)了。如果想使用其他版本的語言標(biāo)注,將17替換成對應(yīng)版本即可。

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)

這篇文章就介紹到這了,希望大家以后多多支持億速云。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI