gpt4 book ai didi

c++ - <线程> : no match for operator <

转载 作者:搜寻专家 更新时间:2023-10-31 01:42:43 25 4
gpt4 key购买 nike

我正在尝试在 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 In function 'bool std::operator<(std::thread::id, std::thread::id)':

88 30 c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.8.1\include\c++\thread [Error] no match for 'operator<' (operand types are 'std::thread::native_handle_type {aka ptw32_handle_t}' and 'std::thread::native_handle_type {aka ptw32_handle_t}')

我在 Windows 8 上使用 Orwell Dev-C++ 5.7.1 和 TDM-GCC 4.7.1 64 位。调用链接器时,我添加了 -static-libgcc -std=c++11。

编辑 1:我加入了线程并收到相同的错误消息。

最佳答案

首先在评论中注意到这一点:

根据您的错误消息和补充详细信息:

compiler: TDM-GCC 4.7.1
includes: gcc\x86_64-w64-mingw32\4.8.1\include

您的编译器正在尝试使用适用于不同编译器的库。使用 4.7.1 4.8.1,不要混合使用两者。

好消息是您的代码看起来不错。整理工具链,它应该可以毫无问题地编译。

关于c++ - <线程> : no match for operator <,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26360944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com