报错代码:
--- stderr: calibration_publisher
CMakeFiles/calibration_publisher.dir/src/calibration_publisher.cpp.o: In function `void cv::operator>><cv::Mat>(cv::FileNode const&, cv::Mat&)':
calibration_publisher.cpp:(.text+0x26): undefined reference to `cv::Mat::Mat()'
CMakeFiles/calibration_publisher.dir/src/calibration_publisher.cpp.o: In function `_GLOBAL__sub_I__Z14tfRegistrationRKN2cv3MatE':
calibration_publisher.cpp:(.text.startup+0x35): undefined reference to `cv::Mat::Mat()'
calibration_publisher.cpp:(.text.startup+0x5e): undefined reference to `cv::Mat::Mat()'
calibration_publisher.cpp:(.text.startup+0x80): undefined reference to `cv::Mat::Mat()'
CMakeFiles/calibration_publisher.dir/src/calibration_publisher.cpp.o: In function `main':
calibration_publisher.cpp:(.text.startup+0xa9b): undefined reference to `cv::read(cv::FileNode const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
解决问题:
打开calibration_publisher功能包对应的Cmakelists.txt
1.crtl+f查找find_package指定你自己的opencv版本
find_package(OpenCV 3.4 REQUIRED)
2.crtl+f查找include_directories将所有的include_directories加上${OpenCV_INCLUDE_DIRS}
include_directories(
${OpenCV_INCLUDE_DIRS}
)
3.crtl+f查找target_link_libraries将所有的target_link_libraries加上${OpenCV_LIBS}
target_link_libraries(calibration_publisher
${OpenCV_LIBS}
)