【问题标题】:erro while cross compile opencv program for arm为arm交叉编译opencv程序时出错
【发布时间】:2013-02-11 10:21:04
【问题描述】:

arm-linux-g++ -o samplecam usbcam.c pkg-config opencv --cflags --libs usbcam.c:25:注意:'va_list' 的修改在 GCC 4.4 中发生了变化 /usr/local/lib/libopencv_calib3d.so:无法读取符号:文件格式错误 collect2: ld 返回 1 个退出状态 make: * [usbcam] 错误 1

【问题讨论】:

    标签: linux opencv


    【解决方案1】:

    问题是什么?你做什么工作?我假设您的 pkg-config 获取安装在您的构建机器中的库的设置(路径 /usr/local/lib 建议)。难怪它不会与 ARM 二进制文件链接。

    如果您有 ARM 构建的 opencv 及其 SDK,您应该在配置构建之前将 PKG_CONFIG_PATH 设置为 /opt/crosstoolchain/.../opencv/lib/pkgconfig?

    【讨论】:

    • 我是 linux 新手,我不明白你在说什么,请你详细解释一下我如何为 ARM 交叉编译
    • 好的,我开始。 1. 确保您使用的是交叉编译器,而不是发行版的默认编译器。 2. 确保您使用/针对 ARM 库而不是您的主机库链接和编译。像您粘贴的问题,“无法读取符号:文件格式错误”建议您尝试将一个架构的构建与其他架构的目标文件/库链接起来。解决action point 1.,你需要把你的ARM编译器放在PATH中,并提供--host=(cross architecture),解决AP 2.,使用PKG_CONFIG_PATH。谷歌一下,字数太短,这里就不一一介绍了。
    猜你喜欢
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 2018-09-13
    • 1970-01-01
    • 2015-06-11
    相关资源
    最近更新 更多