gpt4 book ai didi

c++ - 无法为 Netbeans 启用 pthread

转载 作者:太空宇宙 更新时间:2023-11-04 13:34:40 26 4
gpt4 key购买 nike

当我尝试在 Netbeans (g++ 4.8.2 ubuntu 14.04 LTS) 中使用 c++11 线程库时,出现以下错误:

##Failure Location unknown## : 错误
测试名称:Array2DTest::testArray2D
std::system_error 类型的未捕获异常
- 启用多线程以使用 std::thread:不允许操作

我尝试通过添加 -pthread 作为编译行的附加选项来启用 pthreads,正如类似问题所建议的那样,输出似乎显示该选项已通过:

enter image description here

我还尝试过直接从终端编译简单的“hello world”类型测试,它们确实有效!出于某种原因,我无法让 netbeans 启用它。我唯一能想到的是我正在尝试在 cppunit 测试中测试一些多线程函数,这是否有可能搞乱了 pthread 选项?

编辑: 我发现取出 pkg-config --libs opencv 会导致 -pthreads 开关正常工作,但我仍然无法弄清楚如何让它们一起正常工作。

EDIT2:我能够通过删除 -pthread 开关并插入 -lpthread before 来编译它strong> pkg-config --libs opencv。该解决方案只能通过直接链接到 lpthread 库来工作,并且必须在 opencv 库之前。不知道为什么,我也花了 4 个小时/血眼来弄清楚这个问题。

最佳答案

我认为这可能是我的 gcc 版本的错误。唯一始终如一的工作是使用标志:

-Wl,--no-as-needed

添加 -pthread 根本不起作用。添加 -lpthread 使某些编译工作正常,但其他编译失败,并且通常会出现奇怪的行为。

关于c++ - 无法为 Netbeans 启用 pthread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30020957/

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