1## /usr/bin/ld: …/lib/libShared.so: undefined reference to `ros::console::initialize()’
target_link_libraries(Shared
${catkin_LIBRARIES}
${OpenCV_LIBS}
)
需要记得搭好自己写的库函数与库函数用到的外部函数关系
2:引用某个库的 cmakelist写法:
cmake_minimum_required(VERSION 3.0.2)
project(marscar)
find_package(catkin REQUIRED COMPONENTS
roscpp
serial
rospy
std_msgs
filters
# 。。。
)
find_package(OpenCV REQUIRED)
find_package(Eigen3 REQUIRED)
include_directories("/usr/include/eigen3")
include_directories(
../include
${catkin_INCLUDE_DIRS}
)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ../../lib)
add_library(Shared myserial.cpp)
target_link_libraries(Shared #自己写的库函数 记得要加联系
${catkin_LIBRARIES}
${OpenCV_LIBS}
)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ../../demo)#输出可执行文件的地方
add_executable(mytest ../demo/test.cpp)
target_link_libraries(mytest #可执行文件要加联系
${catkin_LIBRARIES}
${OpenCV_LIBS}
Shared
)
上边代码作为参考,水平不行,做笔记用。