VS2019中CMake專案如何指定c++語言標準
阿新 • • 發佈:2020-02-17
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)
這篇文章就介紹到這了,希望大家以後多多支援我們。