2016-10-15 4 views
0

私は依存性としてboostを持っているlibraryをコンパイルしようとしています。私は私のUbuntu 12.04のマシン上で手動でthis pageの手順を使用してブースト1.62をインストールした'boost :: system :: system_category()'への未定義の参照

../libdasp/libdasp.so: error: undefined reference to 'boost::system::system_category()' ../libdasp/libdasp.so: error: undefined reference to 'boost::system::generic_category()'

:cmakeのとそれをコンパイルしている間、私は次のエラーを受け取ります。パスに関連する矛盾を避けるため、aptを使ってデフォルトのlibboost-dev(1.48)を削除し、新しいboostを/ usrにインストールしました。

私はstackoverflowで同様の質問を探しており、-lboost_systemなどを追加するよう求めています。しかし、私は、ファイルの残りが同じライブラリを使って正常にコンパイルされたときに、特定のライブラリを探すように強制することはできません(私のboostインストールには欠陥がないことを示しています)。エラーを与えるCMakeListsファイルには、私は、次のコマンド

locate boost_system

を実行し、出力が

/usr/lib/libboost_system.a

/usr/lib/libboost_system.so

/usr/lib/libboost_system.so.1.46.1

任意の答えやポインタが本当に役立つだろうです。here

です

答えて

3

試してみてください。

set(BOOST_ROOT <where you built boost>) 

find_package(Boost COMPONENTS program_options signals thread system) 
find_package(Threads) 

...

target_link_libraries(target ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) 
target_include_directories(target PUBLIC SYSTEM ${Boost_INCLUDE_DIRS}) 

は、これらを削除します。ここ

boost_signals 
boost_thread 
boost_program_options 
boost_system 
pthread 

ドキュメント:https://cmake.org/cmake/help/v3.0/module/FindBoost.html

+0

おかげでたくさん。それは魅力のように働いた:) – krammer

関連する問題