首页 > 后端开发 > C++ > 尽管使用了'-pthread”,为什么我的 C 多线程程序仍会抛出'不允许操作”错误?

尽管使用了'-pthread”,为什么我的 C 多线程程序仍会抛出'不允许操作”错误?

Linda Hamilton
发布: 2024-10-30 23:02:30
原创
823 人浏览过

Why Does My C   Multithreaded Program Throw an

使用 g 编译多线程代码:排除运行时错误

问题:

尽管使用了推荐的 '-pthread' 标志,在尝试使用 g 编译和执行多线程 C 程序时遇到运行时错误。尝试使用“std::thread”对象时,错误消息指示“不允许操作”。

可能的解决方案:

该问题可能是由于g 编译器中的错误。要解决此问题,请应用以下解决方法:

将“-Wl,--no-as-needed”标志附加到编译命令。此标志指示链接器不要考虑程序所需的符号“pthreads”。

修订的编译命令:

g++ main.cpp -o main.out -pthread -std=c++11 -Wl,--no-as-needed
登录后复制

此解决方法应该允许您成功编译并执行多线程代码。

注意:

官方 g bug 跟踪器已报告此问题,预计将来会修复。不过,此处提供的解决方法应该可以暂时解决该问题。

以上是尽管使用了'-pthread”,为什么我的 C 多线程程序仍会抛出'不允许操作”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板