1. 程式人生 > >處理VS2010+qt4.8.6下編譯不報錯誤,而Linux下報錯:error: 'nullptr' was not declared in this scope

處理VS2010+qt4.8.6下編譯不報錯誤,而Linux下報錯:error: 'nullptr' was not declared in this scope

今天處理一個同事在VS2010+qt4.8.6下編寫的程式(能夠正確編譯並執行)

我需要將這個程式移植到arm板上,於是在Linux下對此程式進行交叉編譯

於是,問題來了

這個錯誤提示是:nullptr在當前作用域沒有被宣告。

稍作分析,這個nullptr並不是程式定義的,而是C++11引入的關鍵字。

因此想到這個編譯器可能沒有支援C++11。

於是開始找度娘,最好是能夠通過簡單的程式碼載入C++11的支援

使用nullptr時,要新增對C++11的支援,

在.pro檔案中新增QMAKE_CXXFLAGS += -std=c++0x即可

當然,更簡單的方法就是不要加nullptr,用0來替換,如下

OK,上面的兩種方法均能順利通過編譯

歡迎大家指教,希望大家喜歡

路漫漫其修遠兮,同志仍須努力