簡體   English   中英

在qtcreator中編譯C ++ 14

[英]Compilation of C++14 in qtcreator

我有一個包含C++14部分的qt項目。

最近,我改變了我的ubuntu發行版。 現在我有16.04 LTS,我安裝了Qt creator 4.02(建於Jun 13)。

為了啟用C++14編譯,我輸入了項目文件:

QMAKE_CXXFLAGS += -std=c++14

但是,在構建項目時,IDE會生成以下命令:

g++ -c -pipe -std=c++14 -g -O0 -g -std=gnu++11 -Wall -W -D_REENTRANT ...

如圖所示,生成的makefile放置標志-std=gnu++11 ,它覆蓋了C++14的標志。 我之前的發行版(LTS 12.04,同樣的qt創建者版本)沒有發生這種情況。

我試過了

CONFIG += -std=c++14

但行為是一樣的。

有人能給出任何線索嗎?

代替:

CONFIG += -std=c++14

采用:

CONFIG += c++14

你可以從根本上解決它。 通過更改配置文件。

首先,您需要在項目中使用的庫路徑。 您可以通過(Build|Run)按鈕確定查看“ 項目”面板( Ctrl + 5 )並記住“工具包”名稱的路徑,然后按照Tools -> Options -> Build & Run -> Kits ,選擇你記得以前的“Kit”,那么你可以看到Qt version:行內容,在Qt versions選項卡上,你可以看到你需要的相應的完整庫路徑。 在我的情況下,我看到/usr/local/Qt-5.4.1/

/usr/local/Qt-5.4.1/mkspecs/common/g++-base.conf文件中(您可能有另一個安裝Qt庫的路徑),您可以將QMAKE_CXXFLAGS_CXX11QMAKE_CXXFLAGS_CXX14 (如果有)變量更改為您想要的任何內容(比如說, -std=gnu++1z )。

對於clang ,在我的情況下,路徑變為/usr/local/Qt-5.4.1/mkspecs/common/clang.conf

對於其他一些目標/編譯器,您可以按照Tools -> Options -> Build & Run -> Kits -> (select Kit you use) -> (look at 'Qt mkspec:' line at bottom)然后在/usr/local/Qt-5.4.1/mkspecs/*/qmake.conf找到/usr/local/Qt-5.4.1/mkspecs/*/qmake.conf / * /usr/local/Qt-5.4.1/mkspecs/*/qmake.conf (其中*Qt mkspec:行內容),在所有包含的*.conf文件中,您需要一個字符串QMAKE_CXXFLAGS_CXX11QMAKE_CXXFLAGS_CXX14 然后適當地改變它的值。

然后當然你需要使用CONFIG += c++11CONFIG += c++14 ,就像Jon Harper他的回答中提到的那樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM