错误:命名空间'std'中的'mutex'未命名 GCC 4.6.2 中的类型

error: 'mutex' in namespace 'std' does not name a type in gcc 4.6.2

本文关键字:GCC 类型 mutex 命名空间 std 中的 错误 未命名      更新时间:2023-10-16

像这样的简单程序

#include <iostream>       // std::cout
#include <thread>         // std::thread
#include <mutex>          // std::mutex
std::mutex mtx;           // mutex for critical section
int main ()
{
     return 0;
}

尝试以下方法编译

$ /usr/local/Cellar/gcc46/4.6.4/bin/g++-4.6 -std=gnu++0x -I/usr/local/Cellar/gcc46/4.6.4/gcc/include/c++ -L/usr/local/Cellar/gcc46/4.6.4/gcc/lib temp_mutex.cpp 
temp_mutex.cpp:6:1: error: 'mutex' in namespace 'std' does not name a type

顺便说一下,我正在Mac上编译。

它对我有效:

$ g++-4.7 -O2 -Wall -std=c++11 -c mutextest.cc
$ g++-4.6 -O2 -Wall -std=c++0x -c mutextest.cc
$ g++-4.6 -O2 -Wall -std=gnu++0x -c mutextest.cc
$ g++-4.4 -O2 -Wall -std=c++0x -c mutextest.cc
$ g++-4.4 -O2 -Wall -std=gnu++0x -c mutextest.cc

这些都没有生成任何错误消息。

相关文章: