错误:命名空间'std'中的'mutex'未命名 GCC 4.6.2 中的类型
error: 'mutex' in namespace 'std' does not name a type in gcc 4.6.2
像这样的简单程序
#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
这些都没有生成任何错误消息。
相关文章:
- 奇怪的结构&GCC&clang(void*返回类型)
- 为什么与常规GCC不同,即使有"学究性错误",MinGW-GCC也能容忍丢失的返回类型
- 为什么 GCC 在使用类型别名时处理 const reinterpret_cast不同?
- 为什么 Clang 和 GCC 中两个无符号整数之和的结果类型不同
- 在其他容器中使用 boost::container::static_vector 时,GCC 编译错误"将'const s'绑定到类型's&'的引用丢弃限定符"
- 在类中将不完整类型的unique_ptr初始化为 nullptr 时编译 gcc 错误
- 三元运算符 '?:' 在 4.9.0 之前的 GCC 版本中推断出不正确的类型?
- gcc 发出了与解析新表达式中的类型 ID 相关的错误
- static_cast为仅移动类型的叮当与 GCC
- 类数据成员指针的非类型模板参数包无法使用 gcc 编译
- 如何在 gcc 上启用__fp16类型以进行x86_64
- 错误:命名空间"std"中没有名为"invoke_result_t"的类型 GCC-7
- C++编译错误,std 中的互斥锁不会在 MinGW (GCC 6.3.0) 中命名类型
- 尾随返回类型中带有 SFINAE 的 GCC 错误
- 所有版本的 GCC 都在与定义中具有默认类型的模板作斗争
- GCC 9.1 返回 void& 作为显式析构函数调用的结果类型。这是一个错误吗?
- 为什么 GCC 认为模板参数是 int 而它是一个完全不同的类型?
- GCC 编译器对类型转换有什么作用?为什么 mac 和 Linux 上的输出不同
- GCC 6.3.0 中的 ODR 冲突,类型在两个单独的翻译单元中定义
- GCC-类型声明的确切位置