导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    [同济课堂问题] 在交叉编译过程中引用了opencv库报错

    MR Series
    4
    10
    3288
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • S
      Sophus LV 3 最后由 编辑

      我在项目中使用了opencv,使用交叉编译工具进行编译时,链接了opencv的lib,报错如下:

      attempted static link of dynamic object `/usr/local/lib/libopencv_highgui.so.4.5.4'

      根据提示我尝试将tool chain 的-static标志去掉,报错如下:
      usr/local/lib/libopencv_highgui.so.4.5.4: error adding symbols: file in wrong format

      我开启了cmake的DEBUG模式,这是我报错前最后连接的g++ 指令

      /home/david/Downloads/riscv64-linux-x86_64-20210512/bin/riscv64-unknown-linux-gnu-g++ --sysroot=/home/david/Downloads/riscv64-linux-x86_64-20210512/sysroot -march=rv64gcvxtheadc -mabi=lp64d -mtune=c906 -DRVV_SPEC_0_7 -D__riscv_zfh=1 -static -frtti -O2 -g -DNDEBUG -rdynamic CMakeFiles/main.dir/src/main.cpp.o CMakeFiles/main.dir/src/UltraFace.cpp.o -o main -Wl,-rpath,/usr/local/lib ncnn_build/src/libncnn.a /usr/local/lib/libopencv_highgui.so.4.5.4 /usr/local/lib/libopencv_ml.so.4.5.4 /usr/local/lib/libopencv_objdetect.so.4.5.4 /usr/local/lib/libopencv_photo.so.4.5.4 /usr/local/lib/libopencv_stitching.so.4.5.4 /usr/local/lib/libopencv_video.so.4.5.4 /usr/local/lib/libopencv_videoio.so.4.5.4 -lpthread /usr/local/lib/libopencv_imgcodecs.so.4.5.4 /usr/local/lib/libopencv_calib3d.so.4.5.4 /usr/local/lib/libopencv_dnn.so.4.5.4 /usr/local/lib/libopencv_features2d.so.4.5.4 /usr/local/lib/libopencv_flann.so.4.5.4 /usr/local/lib/libopencv_imgproc.so.4.5.4 /usr/local/lib/libopencv_core.so.4.5.4

      感觉是一个比较简单的问题,但是我查阅了文档没有得到合适的帮助,如果能得到帮助将感激不尽!

      1 条回复 最后回复 回复 引用 分享 0
      • xiaowenge
        DOT小文哥 LV 8 最后由 编辑

        这个opencv的库哪里来的?

        S 2 条回复 最后回复 回复 引用 分享 0
        • tigger
          tigger LV 7 最后由 编辑

          error adding symbols: file in wrong format

          看起来使用了不同指令集的gcc

          S 1 条回复 最后回复 回复 引用 分享 0
          • S
            Sophus LV 3 @xiaowenge 最后由 编辑

            @xiaowenge 这个opencv是我从github下载的,然后再ubuntu14上进行编译得到的。

            1 条回复 最后回复 回复 引用 分享 0
            • S
              Sophus LV 3 @tigger 最后由 编辑

              @tigger 是说opencv也需要使用riscv的编译器进行交叉编译才可以是嘛

              1 条回复 最后回复 回复 引用 分享 0
              • S
                Sophus LV 3 @xiaowenge 最后由 编辑

                @xiaowenge 我看了楼下的评论好像明白了,似乎opencv也需要交叉编译才可以链接,我下午试一下

                xiaowenge 1 条回复 最后回复 回复 引用 分享 0
                • xiaowenge
                  DOT小文哥 LV 8 @Sophus 最后由 编辑

                  @sophus 是的,大家都要同宗同源才行

                  S 1 条回复 最后回复 回复 引用 分享 0
                  • S
                    Sophus LV 3 @xiaowenge 最后由 编辑

                    @xiaowenge 好的,感激涕零~!

                    1 条回复 最后回复 回复 引用 分享 0
                    • M
                      memory LV 7 最后由 whycan 编辑

                      搜索关键词 buildroot 会发现新知识。

                      顺便看下韦东山老师这个链接:

                      【极简操作】使用builroot 2021一键编译生成D1 nezha 系统镜像!
                      https://bbs.aw-ol.com/topic/171

                      S 1 条回复 最后回复 回复 引用 分享 0
                      • S
                        Sophus LV 3 @memory 最后由 编辑

                        @memory 好巧,我正在尝试交叉编译opencv,刚刚我看了下发现buildroot竟然支持一键操作,太棒了

                        1 条回复 最后回复 回复 引用 分享 0
                        • 1 / 1
                        • First post
                          Last post

                        Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

                        行为准则 | 用户协议 | 隐私权政策