2014-04-18 53 views
0

我正在使用netbeans IDE 8.0和mingw-builds \ x32-4.8.1編譯器。Netbeans IDE 8.0'mutex'沒有指定類型

我已經包括互斥頭文件和「使用命名空間std」指令

宣告但IDE報告了互斥型懸而未決的標識符。編譯也失敗。

g++ -m32 -c -O2 -I../../../../../Program\ Files\ \(x86\)/mingw-builds/x32-4.8.1-win32-dwarf-rev5/mingw32/lib/gcc/i686-w64-mingw32/4.8.1/include/c++ -std=c++11 -MMD -MP -MF "build/Release/MinGW_1-Windows/main.o.d" -o build/Release/MinGW_1-Windows/main.o main.cpp 
main.cpp:25:5: error: 'mutex' does not name a type 
    mutex mu; 

上述命令中的包含路徑具有互斥頭文件。嘗試清潔和構建,代碼幫助 - >重建項目,沒有任何辦法解決這個問題。

任何想法如何得到這個工作? Netbeans IDE 8.0是最新的。

編輯:我在頭文件互斥看到有兩個的#ifdefs下,所有的互斥體相關的類定義爲_GLIBCXX_HAS_GTHREADS和_GLIBCXX_USE_C99_STDINT_TR1。 我是否需要將這些宏作爲編譯器選項傳遞?

+0

如果在'mutex'之前添加'std ::'(即使使用'namespace'指令)會發生什麼? – Chnossos

+0

我得到了同樣的錯誤。 – irappa

回答

0

現在已經解決了。在安裝mingw 4.8.1編譯器來選擇win32線程或posix線程時有一個選項。我選擇了win32。我的猜測是,win32線程版本沒有定義_GLIBCXX_HAS_GTHREADS宏。

我卸載並重新安裝選擇POSIX線程,現在非常好的工作。