1. 程式人生 > 程式設計 >VS2019中CMake專案如何指定c++語言標準

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)

這篇文章就介紹到這了,希望大家以後多多支援我們。