我正在使用Eclipse Indigo在Ubuntu 12.04 LTS上使用OpenCV 2.4.6.1版本开发一个图像处理应用程序。我使用英特尔ICC编译器版本14.
我需要使用Boost中分发的Thread Library。这样我就成功地用英特尔编译器编译了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_>()
异常被抛出。即使我无法在我的主要功能上达到第一线。
可能是什么问题?
问候。
答案 0 :(得分:1)
我今天遇到了同样的问题。由于这个问题似乎是谷歌的热门话题,并且没有答案,所以这里是:
简单的解决方案:
如果您只需要线程,而没有锁定和计时等所有其他内容,则可以包含#include <boost/thread/thread.hpp>
而不是#include <boost/thread.hpp>
。这种方式与-lboost_thread
链接就足够了,也可能需要-lboost_system
,无法测试它,因为我的代码的其他部分也需要它。
越复杂:
如果您需要更多内容,则可能需要链接更多提升库,例如-lboost_chrono
和-lboost_date_time
。有关详细信息,请参阅http://www.boost.org/doc/libs/1_59_0/doc/html/thread/build.html。