【发布时间】:2014-12-09 06:07:02
【问题描述】:
我正在尝试在 C++11 程序中实现多线程。
我将线程从我的主程序中分离出来,并尝试让最基本的示例正常工作:
#include <iostream>
#include <thread>
void first_procedure() {
std::cout << "First procedure output." << std::endl;
}
void second_procedure() {
std::cout << "Second procedure output." << std::endl;
}
int main() {
std::thread first_thread(first_procedure);
std::thread second_thread(second_procedure);
first_thread.join();
second_thread.join();
return 0;
}
但是,即使使用此示例,我也会收到以下错误:
c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.8.1\include\c++\thread 在函数'bool std::operator
88 30 c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.8.1\include\c++\thread [错误] no match for 'operator
我在 Windows 8 上使用带有 TDM-GCC 4.7.1 64 位的 Orwell Dev-C++ 5.7.1。调用链接器时,我添加了 -static-libgcc -std=c++11。
编辑 1:我加入了线程并收到相同的错误消息。
【问题讨论】:
-
请注意,您的程序已损坏。您不能破坏可连接的线程。
-
你需要加入这些话题。
-
这是整个代码吗?如果是这样,你的编译器坏了——换一个新的。
-
我编辑了我的帖子。即使我加入线程,我也会收到相同的错误消息。是的,这是我的全部代码。
-
TDM-GCC 4.7.1,但您包含的标头是 gcc\x86_64-w64-mingw32\ 4.8.1 \include ?我不知道你是怎么把那个工具链和口香糖和钢丝绳拼凑在一起的,但它搞砸了。
标签: c++ multithreading c++11