
https://stackoverflow.com/questions/9131763/eclipse-cdt-c11-c0x-support
我來自那個網站。
我有一個 C++ 項目,可以使用 g++-4.8 進行編譯,沒有任何問題。我只想使用 cstdint 檔案中的 std::int8_t 。
問題是 Eclipse 索引器無法解析該名稱。
我轉到 csdint 文件,在初始巨集中它將 __cplusplus 擴展為 199711L 而不是 201103L。
在我的專案設定中,我新增了 std=c++11 ,並在編譯器標誌中新增了GXX_實驗_CXX0X
我有說過它可以編譯嗎?
這非常令人沮喪,我想我可以在沒有索引器的情況下生活,但話又說回來,如果 IDE 給我錯誤誤報,它的目的是什麼。
答案1
我在這裡找到了我的答案:http://www.eclipse.org/forums/index.php/t/490066/
轉到“項目屬性”->“路徑和符號”->“符號”選項卡->“GNU C++”->“__cplusplus 符號”並更改為 201103L
答案2
這取決於您使用的 C++ 專案類型和 eclipse 版本。我在 Eclipse Mars.2 (4.5) 中有一個 Makefile 項目,帶有 CDT 8.8.1.201602051005) 如果您有一個 Makefile 項目並在項目屬性中看到該項目C/C++ General
--> C/C++ Make Projects
,您還必須轉到“Discovery Options”選項卡,然後添加-std=c++11
到編譯器調用參數。