1

Eclipse Indigo を使用した Ubuntu 12.04 LTS で OpenCV 2.4.6.1 バージョンの画像処理アプリケーションを開発しています。Intel 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です。コードの他の部分でも必要なため、テストできませんでした。

より複雑:

さらに必要な場合は、 や などの追加のブースト ライブラリとリンクする必要がある場合があり-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 に答える