问题:
尽管使用了推荐的 '-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中文网其他相关文章!