You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下编译带PV_API支持的OpenCV时链接错误的解决方法

问题描述
  • 环境:Ubuntu系统,使用OpenCV交互式校准工具搭配GigE相机
  • 编译报错:链接阶段提示timer_settime、timer_delete、timer_create等函数未定义
  • 背景:已下载Allied Vision旧版PV_API(原PV_API已废弃),希望避免直接对接相机SDK
  • 尝试无效的操作:通过CMAKE_CXX_FLAGS和add_link_options()添加-lrt参数,未解决链接错误

正确的CMake配置(解决-lrt链接问题)

如果全局添加-lrt没生效,核心问题是opencv_videoio模块没有关联到rt库,针对性处理即可:

1. 编译OpenCV时修改videoio模块配置

如果你是自己编译OpenCV,找到modules/videoio/CMakeLists.txt,找到opencv_videoio的目标定义部分,添加:

target_link_libraries(opencv_videoio PRIVATE rt)

保存后重新编译OpenCV,这样opencv_videoio会自动链接rt库,解决函数未定义的问题。

2. 在自己的项目中强制链接

如果是基于预编译OpenCV开发校准工具,直接在你的项目CMakeLists.txt里给目标添加rt库链接:

find_package(OpenCV REQUIRED COMPONENTS videoio calib3d highgui)
add_executable(calibration_tool your_calibration_code.cpp)
target_link_libraries(calibration_tool PRIVATE ${OpenCV_LIBS} rt)

这种方式会把-lrt直接加入你的可执行文件的链接参数,覆盖OpenCV模块缺失的依赖。

Ubuntu上OpenCV支持GigE的最简方案

不想折腾PV_API的话,推荐用以下两种更简单的方式:

1. 用OpenCV + GStreamer后端

GigE相机大多支持通过GStreamer获取流,步骤如下:

  • 安装依赖:
    sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libaravis-0.8-dev
    
  • 重新编译OpenCV时启用GStreamer:
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_GSTREAMER=ON -D WITH_GSTREAMER_0_10=OFF <你的OpenCV源码目录>
    make -j$(nproc)
    sudo make install
    
  • 之后用OpenCV的VideoCapture直接读取相机流,示例代码:
    #include <opencv2/opencv.hpp>
    int main() {
        // 替换为你的GigE相机对应的GStreamer pipeline
        cv::VideoCapture cap("aravisgssrc ! videoconvert ! appsink");
        if (!cap.isOpened()) {
            return -1;
        }
        cv::Mat frame;
        while (cap.read(frame)) {
            cv::imshow("GigE Camera Feed", frame);
            if (cv::waitKey(1) == 'q') break;
        }
        return 0;
    }
    

2. 直接用系统预编译OpenCV包

部分Ubuntu版本的官方源中,OpenCV预编译包已经启用了GStreamer支持,直接安装即可:

sudo apt install libopencv-dev opencv-data

安装后可以直接用上述GStreamer pipeline的方式读取相机流,无需手动编译OpenCV。

内容的提问来源于stack exchange,提问作者George Profenza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 09:53:38