Closed k-okada closed 10 years ago
This post was originally posted at http://sourceforge.net/p/jsk-ros-pkg/tickets/33
ubuntu 12.04, 64bitでcr_capture, stereo_synchronizerがmakeできません。
エラーはいかのようで、
leus@equuleus:~/ros/fuerte/jsk-ros-pkg/cr_capture$ make Linking CXX executable ../bin/cr_capture /usr/bin/ld: CMakeFiles/cr_capture.dir/src/cr_node.o: undefined reference to symbol 'boost::signals::connection::~connection()' /usr/bin/ld: note: 'boost::signals::connection::~connection()' is defined in DSO /usr/lib/libboost_signals.so.1.46.1 so try adding it to the linker command line /usr/lib/libboost_signals.so.1.46.1: could not read symbols: Invalid operation collect2: ld はステータス 1 で終了しました make[3]: [../bin/cr_capture] エラー 1 make[3]: ディレクトリ `/home/leus/ros/fuerte/jsk-ros-pkg/cr_capture/build' から出ます make[2]: [CMakeFiles/cr_capture.dir/all] エラー 2 make[2]: ディレクトリ /home/leus/ros/fuerte/jsk-ros-pkg/cr_capture/build' から出ます make[1]: *** [all] エラー 2 make[1]: ディレクトリ/home/leus/ros/fuerte/jsk-ros-pkg/cr_capture/build' から出ます make: *** [all] エラー 2
/home/leus/ros/fuerte/jsk-ros-pkg/cr_capture/build' から出ます make[1]: *** [all] エラー 2 make[1]: ディレクトリ
leus@equuleus:~/ros/fuerte/jsk-ros-pkg/stereo_synchronizer$ make [ 66%] Building CXX object CMakeFiles/cr_synchronizer.dir/src/cr_synchronizer.o Linking CXX executable ../bin/cr_synchronizer /usr/bin/ld: CMakeFiles/cr_synchronizer.dir/src/cr_synchronizer.o: undefined reference to symbol 'boost::signals::connection::~connection()' /usr/bin/ld: note: 'boost::signals::connection::~connection()' is defined in DSO /usr/lib/libboost_signals.so.1.46.1 so try adding it to the linker command line /usr/lib/libboost_signals.so.1.46.1: could not read symbols: Invalid operation collect2: ld はステータス 1 で終了しました make[3]: [../bin/cr_synchronizer] エラー 1 make[3]: ディレクトリ `/home/leus/ros/fuerte/jsk-ros-pkg/stereo_synchronizer/build' から出ます make[2]: [CMakeFiles/cr_synchronizer.dir/all] エラー 2 make[2]: ディレクトリ /home/leus/ros/fuerte/jsk-ros-pkg/stereo_synchronizer/build' から出ます make[1]: *** [all] エラー 2 make[1]: ディレクトリ/home/leus/ros/fuerte/jsk-ros-pkg/stereo_synchronizer/build' から出ます make: *** [all] エラー 2
/home/leus/ros/fuerte/jsk-ros-pkg/stereo_synchronizer/build' から出ます make[1]: *** [all] エラー 2 make[1]: ディレクトリ
boostのリンクの問題で次のようにするとmakeがとおるようなのですが、 これで問題ないでしょうか
--- CMakeLists.txt (リビジョン 3911) +++ CMakeLists.txt (作業コピー) @@ -31,5 +31,7 @@ gencfg()
rosbuild_add_executable(cr_capture src/cr_node.cpp src/CRLib.cpp src/SRCalibratedLib.cpp) +rosbuild_link_boost(cr_capture signals) rosbuild_add_executable(cr_capture_sync src/cr_node_sync.cpp src/CRLib.cpp src/SRCalibratedLib.cpp) +rosbuild_link_boost(cr_capture_sync signals) v #target_link_libraries(example ${PROJECT_NAME})
leus@equuleus:~/ros/fuerte/jsk-ros-pkg/stereo_synchronizer$ svn diff
--- CMakeLists.txt (リビジョン 3911) +++ CMakeLists.txt (作業コピー) @@ -27,5 +27,7 @@
rosbuild_add_executable(stereo_synchronizer src/stereo_synchronizer.cpp) +rosbuild_link_boost(stereo_synchronizer signals) rosbuild_add_executable(cr_synchronizer src/cr_synchronizer.cpp) +rosbuild_link_boost(cr_synchronizer signals)
r3924 で対応しました。
Ticket moved from /p/jsk-ros-pkg/bugs/26/
Can't be converted:
This post was originally posted at http://sourceforge.net/p/jsk-ros-pkg/tickets/33
ubuntu 12.04, 64bitでcr_capture, stereo_synchronizerがmakeできません。
エラーはいかのようで、
leus@equuleus:~/ros/fuerte/jsk-ros-pkg/cr_capture$ make Linking CXX executable ../bin/cr_capture /usr/bin/ld: CMakeFiles/cr_capture.dir/src/cr_node.o: undefined reference to symbol 'boost::signals::connection::~connection()' /usr/bin/ld: note: 'boost::signals::connection::~connection()' is defined in DSO /usr/lib/libboost_signals.so.1.46.1 so try adding it to the linker command line /usr/lib/libboost_signals.so.1.46.1: could not read symbols: Invalid operation collect2: ld はステータス 1 で終了しました make[3]: [../bin/cr_capture] エラー 1 make[3]: ディレクトリ `/home/leus/ros/fuerte/jsk-ros-pkg/cr_capture/build' から出ます make[2]: [CMakeFiles/cr_capture.dir/all] エラー 2 make[2]: ディレクトリ
/home/leus/ros/fuerte/jsk-ros-pkg/cr_capture/build' から出ます make[1]: *** [all] エラー 2 make[1]: ディレクトリ
/home/leus/ros/fuerte/jsk-ros-pkg/cr_capture/build' から出ます make: *** [all] エラー 2leus@equuleus:~/ros/fuerte/jsk-ros-pkg/stereo_synchronizer$ make [ 66%] Building CXX object CMakeFiles/cr_synchronizer.dir/src/cr_synchronizer.o Linking CXX executable ../bin/cr_synchronizer /usr/bin/ld: CMakeFiles/cr_synchronizer.dir/src/cr_synchronizer.o: undefined reference to symbol 'boost::signals::connection::~connection()' /usr/bin/ld: note: 'boost::signals::connection::~connection()' is defined in DSO /usr/lib/libboost_signals.so.1.46.1 so try adding it to the linker command line /usr/lib/libboost_signals.so.1.46.1: could not read symbols: Invalid operation collect2: ld はステータス 1 で終了しました make[3]: [../bin/cr_synchronizer] エラー 1 make[3]: ディレクトリ `/home/leus/ros/fuerte/jsk-ros-pkg/stereo_synchronizer/build' から出ます make[2]: [CMakeFiles/cr_synchronizer.dir/all] エラー 2 make[2]: ディレクトリ
/home/leus/ros/fuerte/jsk-ros-pkg/stereo_synchronizer/build' から出ます make[1]: *** [all] エラー 2 make[1]: ディレクトリ
/home/leus/ros/fuerte/jsk-ros-pkg/stereo_synchronizer/build' から出ます make: *** [all] エラー 2boostのリンクの問題で次のようにするとmakeがとおるようなのですが、 これで問題ないでしょうか
leus@equuleus:~/ros/fuerte/jsk-ros-pkg/cr_capture$ Index: CMakeLists.txt
--- CMakeLists.txt (リビジョン 3911) +++ CMakeLists.txt (作業コピー) @@ -31,5 +31,7 @@ gencfg()
rosbuild_add_executable(cr_capture src/cr_node.cpp src/CRLib.cpp src/SRCalibratedLib.cpp) +rosbuild_link_boost(cr_capture signals) rosbuild_add_executable(cr_capture_sync src/cr_node_sync.cpp src/CRLib.cpp src/SRCalibratedLib.cpp) +rosbuild_link_boost(cr_capture_sync signals) v #target_link_libraries(example ${PROJECT_NAME})
leus@equuleus:~/ros/fuerte/jsk-ros-pkg/stereo_synchronizer$ svn diff
Index: CMakeLists.txt
--- CMakeLists.txt (リビジョン 3911) +++ CMakeLists.txt (作業コピー) @@ -27,5 +27,7 @@
rosbuild_add_boost_directories()
rosbuild_link_boost(${PROJECT_NAME} thread)
rosbuild_add_executable(stereo_synchronizer src/stereo_synchronizer.cpp) +rosbuild_link_boost(stereo_synchronizer signals) rosbuild_add_executable(cr_synchronizer src/cr_synchronizer.cpp) +rosbuild_link_boost(cr_synchronizer signals)
target_link_libraries(example ${PROJECT_NAME})