
用 CMake 同时链接 OpenCV 和 Boost.program_options,代码里只用到了 Boost 的命令行解析,但只要一引入 OpenCV,链接阶段就报一堆boost::program_options的undefined reference,符号里还带着一个奇怪的命名空间std::__debug。问题现象find_package(OpenCV REQUIRED) find_package(Boost REQUIRED COMPONENTS program_options) add_executable(test_opencv main.cpp) target_link_libraries(test_opencv PRIVATE ${OpenCV_LIBS} Boost::program_options)链接错误:/usr/bin/ld: CMakeFiles/test_opencv.dir/main.cpp.o: in function `boost::program_options::basic_command_line_parser::basic_command_line_parser(int, char const* const*)': undefined reference to `boost::program_options::detail::cmdline::cmdline(std::__debug::vectorstd::stri