簡體   English   中英

GCC 4.8無法識別nullptr

[英]nullptr unrecognized with gcc 4.8

在Red Hat Linux工作站上,我使用devtoolset2給出以下命令:

scl enable devtoolset-2 bash

然后,當我調用gcc --version時,得到:

gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15) Copyright (C) 2013 Free Software Foundation, Inc.

但是,如果我編譯程序(使用cmake生成的malkefile,請添加以下行:

if(UNIX)
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11")
endif()

我有以下錯誤消息:

cc1plus: error: unrecognized command line option "-std=c++11"

並且如果我將-std = c ++ 11替換為-std = c ++ 0x,那么我將獲得以下消息:

nullptr wasnt declared in this scope.

考慮到它是關鍵字,如何無法識別nullptr?

我不明白,如果您有任何想法...

您沒有調用GCC 4.8.2。

CMake配置有問題,或者SCL調用有問題,或者gcc -vg++ -v提供了不同的答案(在這種情況下,請檢查工具集的內容)。

但是nullptr不可用,並且-std=c++0x可以接受,但-std=c++11不可以,都建議使用GCC 4.3、4.4或4.5。

您可以嘗試做的一件事是從構建根目錄中刪除文件CMakeCache.txt ,其中可能包含先前環境的緩存屬性。

失敗的話,打開詳細輸出,這樣您才能真正看到正在發生的事情,正在調用的二進制文件以及執行方式。

暫無
暫無

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

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