ysnis 2025-01-07 09:29 采纳率: 14.3%
浏览 12

openCV测试用例失败

[ 50%] Building CXX object CMakeFiles/opencv_example.dir/example.cpp.o
[100%] Linking CXX executable opencv_example
/usr/local/lib/libopencv_videoio.so.4.10.0:对‘std::thread::_State::~_State()@GLIBCXX_3.4.22’未定义的引用
/usr/local/lib/libopencv_videoio.so.4.10.0:对‘std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_deletestd::thread::_State >, void (*)())@GLIBCXX_3.4.22’未定义的引用
/usr/local/lib/libopencv_videoio.so.4.10.0:对‘typeinfo for std::thread::_State@GLIBCXX_3.4.22’未定义的引用
collect2: error: ld returned 1 exit status
CMakeFiles/opencv_example.dir/build.make:136: recipe for target 'opencv_example' failed
make[2]: *** [opencv_example] Error 1
CMakeFiles/Makefile2:75: recipe for target 'CMakeFiles/opencv_example.dir/all' failed
make[1]: *** [CMakeFiles/opencv_example.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

  • 写回答

5条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-01-07 09:30
    关注
    让【道友老李】来帮你解答,本回答参考通义千问大模型编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
    如果答案让您满意,请采纳、关注,非常感谢!
    这个错误是由于链接阶段出现了对于std::thread相关函数未定义的引用导致的。这通常是由于使用的库版本与编译环境不兼容导致的。 解决方案一般有以下几种:
    1. 确保你的编译环境(包括编译器版本、库版本等)与使用的库版本兼容。
    2. 如果可能,尝试升级或降级你的库版本来解决不兼容的问题。
    3. 在编译时添加相应的链接选项,指定正确的库路径或版本。 以下是一个可能的代码示例来解决这个问题,其中我们假设是编译器与库版本不匹配导致的问题:
    cmake_minimum_required(VERSION 3.10)
    project(opencv_example)
    set(CMAKE_CXX_STANDARD 11)
    # 通过设置正确的库路径来解决链接问题
    link_directories("/path/to/your/opencv/lib")
    add_executable(opencv_example example.cpp)
    target_link_libraries(opencv_example opencv_videoio)
    

    你可以根据具体情况调整以上示例代码,确保正确设置了库路径和版本。希望这能帮到你解决问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月7日