こんにちは私はBoostのCmakeListと依存関係に問題があります。私のCmakeListは次のようになります:CmakeListのBoostライブラリのトラブルシューティング
cmake_minimum_required(VERSION 2.8.3)
project(cpp_arm)
add_compile_options(-std=c++11)
find_package(catkin REQUIRED COMPONENTS
moveit_core
)
find_package(Boost REQUIRED COMPONENTS
system
filesystem
date_time
thread
)
catkin_package()
include_directories(${catkin_INCLUDE_DIRS})
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
add_executable(hello_world src/hello_world.cpp)
add_executable(test_arm src/test_arm.cpp)
target_link_libraries(cpp_arm ${Boost_LIBRARIES})
install(DIRECTORY launch DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
PATTERN "setup_assistant.launch" EXCLUDE)
install(DIRECTORY config DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
最初に私はcatkin_makeを完了できなかったこの問題を抱えていました。私は、次のコードを持っていなかった:これは私に次のエラーました
target_link_libraries(cpp_arm ${Boost_LIBRARIES})
:そのエラーを検索した後
CMakeFiles/test_arm.dir/src/test_arm.cpp.o: In function `_GLOBAL__sub_I_main':
test_arm.cpp:(.text.startup+0x43): undefined reference to `boost::system::generic_category()'
test_arm.cpp:(.text.startup+0x48): undefined reference to `boost::system::generic_category()'
test_arm.cpp:(.text.startup+0x4d): undefined reference to `boost::system::system_category()'
collect2: error: ld returned 1 exit status
を私はあなたがリンクする必要があると言って(スタックに)この上でさまざまなトピックを見つけましたcmakelistのboostライブラリがcmakeに "見つけさせる"ようにしました。私は自分のコードに示す(従って述べたトピックに記載されている構文に)としてということでしたが、これは新しいエラーが発生:
CMake Error at cpp_arm/CMakeLists.txt:25 (target_link_libraries):
Cannot specify link libraries for target "cpp_arm" which is not built by
this project.
私は主にリンクライブラリの構文を言ってトピックを見て、そのエラーを見上げたとき問題は、私の構文が解決策としてトピックで言及されたものと同じであるということです。
なぜこのエラーが発生し、これを解決するにはどうすればよいですか?事前に
おかげ
編集:私は私のプロジェクトが実際にあるかについていくつかの混乱がある参照してください。私は、私のcatkin_workspaceにROSのパッケージを生成するMoveITセットアップアシスタントによって作成されたROSパッケージを実行しています。このワークスペースの中で、私のパッケージフォルダの名前はcpp_armです。このパッケージ/フォルダの中に私のCmakeListがあり、このフォルダの中にはのsrcがあり、単純なC++ファイル(test_arm.cpp)を含んでいます。私はUbuntuのadd_library
とadd_executable
で作成したターゲットの16.04
あなたはクロスコンパイルしていますか?またはあなたのdevマシンのARMですか? 'cpp_arm'は赤いニシンですか? – sehe