You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 8下使用g++编译C++多线程程序失败求助

解决Windows 8下g编译C多线程代码失败的问题

你的代码本身没有问题,编译失败是因为缺少必要的编译参数,具体原因和解决方法如下:

问题原因

  1. std::thread是C11标准引入的特性,g默认可能未启用C++11及以上编译标准,导致编译器无法识别接受函数指针的std::thread构造函数。
  2. Windows下使用MinGW的g++编译多线程程序时,必须显式链接线程库,否则会出现函数匹配失败的错误。

正确的编译命令

将原来的编译命令替换为:

g++ -std=c++11 -pthread test.cpp -o test.exe

如果你的g版本支持更高的C标准(比如C17、C20),也可以把-std=c++11换成-std=c++17或-std=c++20,效果一致。

参数说明

  • -std=c++11:指定编译器使用C++11标准,确保std::thread的相关特性被正确识别。
  • -pthread:链接线程依赖库,解决Windows下多线程代码的编译依赖问题。

编译成功后,运行生成的test.exe就能得到预期输出。

内容的提问来源于stack exchange,提问作者Madhusudhana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 06:12:46