1

我正在使用 Eclipse Indigo 在 Ubuntu 12.04 LTS 上使用 OpenCV 2.4.6.1 版本开发图像处理应用程序。我使用英特尔 ICC 编译器版本 14。

我需要使用 Boost 中分布的线程库。这样我就成功地用 Intel 编译器编译了 Boost 1.54。

要使用以下代码进行编译,将 -lboost_thread 开关添加到链接器的标志列表中:

boost::this_thread::sleep_for(oneFrameProcessDuration -(boost::chrono::high_resolution_clock::now() - startTime));

在这个整体应用程序编译成功之后。当我开始申请时,

boost::exception_ptr boost::exception_detail::get_static_exception_object<boost::exception_detail::bad_alloc_>() 

抛出异常。即使我无法到达我的主要功能的第一行。

可能是什么问题?

问候。

4

1 回答 1

1

我今天遇到了同样的问题。由于这个问题似乎是谷歌上的热门问题并且没有答案,所以这里是:

简单的解决方案:

如果您只需要线程,而不需要锁定和计时等所有其他内容,则可以包含#include <boost/thread/thread.hpp>而不是#include <boost/thread.hpp>. 这种方式链接-lboost_thread就足够了,也许-lboost_system也需要,无法测试它,因为我的代码的其他部分也需要它。

更复杂的:

如果你需要更多,你可能需要链接更多的 boost 库,比如-lboost_chrono-lboost_date_time. 有关详细信息,请参阅http://www.boost.org/doc/libs/1_59_0/doc/html/thread/build.html 。

于 2016-04-08T06:40:33.713 回答