我使用的是netbeans IDE 8.0和mingw builds\x32-4.8.1编译器。
我已经包含了互斥体头文件,并声明了"使用命名空间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;
上述命令中的include路径具有互斥体头文件。尝试过清理和构建,代码协助->重新分析项目,没有解决此问题。
知道我该怎么做吗?Netbeans IDE 8.0是最新的。
EDIT:我在头文件mutex中看到_GLIBCXX_HAS_GREADS和_GLIBCXX_USE_C99_STDINT_TR1有两个#ifdef,在这两个ifdef下定义了所有与mutex相关的类。我需要将这些宏作为编译器选项传递吗?
现在已解决。在安装mingw 4.8.1编译器时,可以选择win32线程或posix线程。我选择了win32。我的猜测是win32线程版本并没有定义_GLIBCXX_HAS_GREADS宏。
我卸载并重新安装了选择posix线程,现在一切都很好。