【问题标题】:Netbeans IDE 8.0 'mutex' does not name a typeNetbeans IDE 8.0 'mutex' 没有命名类型
【发布时间】:2014-06-03 11:39:40
【问题描述】:

我正在使用带有 mingw-builds\x32-4.8.1 编译器的 netbeans IDE 8.0。

我已经包含了 mutex 头文件并声明了 'using namespace 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 是最新的。

编辑:我在头文件 mutex 中看到 _GLIBCXX_HAS_GTHREADS 和 _GLIBCXX_USE_C99_STDINT_TR1 的两个 #ifdef,在其中定义了所有与 mutex 相关的类。 我需要将这些宏作为编译器选项传递吗?

【问题讨论】:

  • 如果在mutex 之前添加std:: 会发生什么(即使使用using namespace 指令)?
  • 我得到同样的错误。

标签: c++11 netbeans


【解决方案1】:

现在已经解决了。安装 mingw 4.8.1 编译器时有一个选项可以选择 win32 线程或 posix 线程。我选择了win32。我的猜测是win32线程版本没有定义_GLIBCXX_HAS_GTHREADS宏。

我卸载并重新安装了选择 posix 线程,现在一切正常。

【讨论】:

    猜你喜欢
    • 2014-05-29
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 2015-03-12
    • 2014-05-31
    相关资源
    最近更新 更多