0
我有一個與CMake代碼庫。最初我的Boost 1.48。今天升級到最新版本(即1.59)。我有Ubuntu的12.04。問題與升級升壓在Ubuntu 12.04
我有一個使用boost :: thread的代碼庫。 現在它給以下錯誤:
Linking CXX executable /home/eeuser/ros_workspaces/HeloRosProject/devel/lib/visensor_node/visensor_node
/home/eeuser/ros_workspaces/HeloRosProject/devel/lib/libvisensor.so: error: undefined reference to 'boost::thread::join_noexcept()'
/home/eeuser/ros_workspaces/HeloRosProject/devel/lib/libvisensor.so: error: undefined reference to 'boost::thread::start_thread_noexcept()'
collect2: ld returned 1 exit status
make[2]: *** [/home/eeuser/ros_workspaces/HeloRosProject/devel/lib/visensor_node/visensor_node] Error 1
make[1]: *** [visensor_node/CMakeFiles/visensor_node.dir/all] Error 2
make: *** [all] Error 2
Invoking "make" failed
這裏是我的cmakefile看起來像
cmake_minimum_required(VERSION 2.8.3)
project(visensor_node)
find_package(catkin REQUIRED COMPONENTS
roscpp
message_generation
geometry_msgs
sensor_msgs
cv_bridge
std_msgs
image_transport
camera_info_manager
dynamic_reconfigure
cmake_modules
)
# check libvisensor version, flags not used later
find_package(libvisensor 1.1.0 REQUIRED)
find_package(Boost REQUIRED COMPONENTS system thread date_time)
include_directories(${Boost_INCLUDE_DIRS})
find_package(Threads REQUIRED)
set(Boost_USE_MULTITHREADED ON)
add_message_files(
DIRECTORY msg
FILES visensor_imu.msg
visensor_time_host.msg
visensor_calibration.msg
)
add_service_files(
FILES
visensor_calibration_service.srv
)
generate_messages(DEPENDENCIES geometry_msgs)
include_directories(include ${catkin_INCLUDE_DIRS} ${libvisensor_INCLUDE_DIRS})
find_package(Eigen REQUIRED)
include_directories(${EIGEN_INCLUDE_DIR})
add_definitions(${EIGEN_DEFINITIONS})
find_package(OpenCV REQUIRED COMPONENTS core highgui imgproc)
generate_dynamic_reconfigure_options(cfg/visensor_node.cfg)
if(NOT DEFINED CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif(NOT DEFINED CMAKE_BUILD_TYPE)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wall -std=c++0x -D__STRICT_ANSI__")
catkin_package(
INCLUDE_DIRS include ${catkin_INCLUDE_DIRS}
CATKIN_DEPENDS
roscpp
sensor_msgs
cv_bridge
std_msgs
image_transport
camera_info_manager
)
#build and add libvisensor system library dependency
add_executable(visensor_node src/visensor_node.cpp src/visensor.cpp)
add_dependencies(visensor_node ${${PROJECT_NAME}_EXPORTED_TARGETS}})
target_link_libraries(visensor_node ${libvisensor_LIBRARIES} ${catkin_LIBRARIES} ${OpenCV_LIBRARIES} ${Boost_THREAD_LIBRARY})
快把我逼瘋了這個錯誤...! 請幫忙。
你使用羅斯水電? – ARG
您的ROS版本可能與較新的Boost不兼容。另請參閱[此答案](http://stackoverflow.com/a/33231855/2095383)。 – luator