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

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

Linda Hamilton
Linda Hamilton原创
2024-10-30 23:02:30734浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn