无法为Netbeans启用pthreads

时间:2015-05-04 00:25:26

标签: c++ multithreading c++11 netbeans pthreads

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

##Failure Location unknown## : Error Test name: Array2DTest::testArray2D uncaught exception of type std::system_error - Enable multithreading to use std::thread: Operation not permitted

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

enter image description here

我也试过编译简单的#34; hello world"直接从终端输入测试,它们实际上工作!出于某种原因,我无法获得netbeans来启用它。我唯一能想到的是我试图在cppunit测试中测试一些多线程函数,所以这可能会搞乱pthread选项吗?

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

EDIT2:我可以通过移除-pthread开关并在 -lpthread之前插入pkg-config --libs opencv 来进行编译。该解决方案只能通过直接链接到lpthread库来工作,而且必须在opencv库之前。不知道为什么,这也让我花了4个小时/血的眼睛来解决这个问题。

1 个答案:

答案 0 :(得分:0)

我认为这可能是我的gcc版本的错误。唯一一致的是使用旗帜:

-Wl,--no-as-needed

添加-pthread根本不起作用。添加-lpthread使得一些编辑工作,其他编辑失败,并且通常只会产生奇怪的行为。