OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 5135|回复: 4

【求帮忙】海思平台移植opencv编译错误

[复制链接]
发表于 2016-5-9 02:31:17 | 显示全部楼层 |阅读模式
makefile:
  1. CC:= arm-hisiv100-linux-g++
  2. INCLUDE := -I/home/whatsrobot/share/opencv/canny/
  3. LDFLAGS = -L./lib
  4. LDLIBS =  -lopencv_superres -lopencv_objdetect -lopencv_imgcodecs -lopencv_video  -lopencv_shape  \
  5.           -lopencv_highgui  -lopencv_core  -lopencv_ml -lopencv_flann -lopencv_features2d  -lopencv_calib3d\
  6.           -lopencv_imgproc    -lopencv_photo     -lopencv_videoio\


  7. CFLAGS := -Wall -g -Wl,-gc-sections -march=armv7-a

  8. # target source
  9. SRC  := $(wildcard *.cpp)
  10. OBJ  := $(SRC:%.cpp=%.o)

  11. TARGET := main
  12. .PHONY : clean all

  13. all: $(TARGET)


  14. $(TARGET):$(OBJ)
  15.         $(CC)  -o $@ $^ $(LDFLAGS) $(LDLIBS)  $(CFLAGS) -lpthread -lm

  16. $(OBJ):
  17.         $(CC) $(CFLAGS) $(INCLUDE) $(LIBS) -c $(SRC)

  18. clean:
  19.         rm -f $(TARGET)
  20.         rm -f $(OBJ)
  21.        

复制代码


whatsrobot@whatsrobot-VirtualBox:~/share/opencv/canny$ make;
arm-hisiv100-linux-g++  -o main main-canny.o -L./lib -lopencv_superres -lopencv_objdetect -lopencv_imgcodecs -lopencv_video  -lopencv_shape -lopencv_highgui  -lopencv_core  -lopencv_ml -lopencv_flann -lopencv_features2d  -lopencv_calib3d -lopencv_imgproc    -lopencv_photo     -lopencv_videoio   -Wall -g -Wl,-gc-sections -march=armv7-a -lpthread -lm
/opt/hisi-linux/x86-arm/arm-hisiv100-linux/bin/../lib/gcc/arm-hisiv100-linux-uclibcgnueabi/4.4.1/../../../../arm-hisiv100-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_video.so, needed by ./lib/libopencv_superres.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv100-linux/bin/../lib/gcc/arm-hisiv100-linux-uclibcgnueabi/4.4.1/../../../../arm-hisiv100-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_videoio.so, needed by ./lib/libopencv_superres.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv100-linux/bin/../lib/gcc/arm-hisiv100-linux-uclibcgnueabi/4.4.1/../../../../arm-hisiv100-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_imgcodecs.so, needed by ./lib/libopencv_superres.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv100-linux/bin/../lib/gcc/arm-hisiv100-linux-uclibcgnueabi/4.4.1/../../../../arm-hisiv100-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_imgproc.so, needed by ./lib/libopencv_superres.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv100-linux/bin/../lib/gcc/arm-hisiv100-linux-uclibcgnueabi/4.4.1/../../../../arm-hisiv100-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_core.so, needed by ./lib/libopencv_superres.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv100-linux/bin/../lib/gcc/arm-hisiv100-linux-uclibcgnueabi/4.4.1/../../../../arm-hisiv100-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_ml.so, needed by ./lib/libopencv_objdetect.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv100-linux/bin/../lib/gcc/arm-hisiv100-linux-uclibcgnueabi/4.4.1/../../../../arm-hisiv100-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_highgui.so, needed by ./lib/libopencv_objdetect.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv100-linux/bin/../lib/gcc/arm-hisiv100-linux-uclibcgnueabi/4.4.1/../../../../arm-hisiv100-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_flann.so, needed by ./lib/libopencv_features2d.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv100-linux/bin/../lib/gcc/arm-hisiv100-linux-uclibcgnueabi/4.4.1/../../../../arm-hisiv100-linux-uclibcgnueabi/bin/ld: warning: ../../lib/libopencv_features2d.so, needed by ./lib/libopencv_calib3d.so, not found (try using -rpath or -rpath-link)
/opt/hisi-linux/x86-arm/arm-hisiv100-linux/bin/../lib/gcc/arm-hisiv100-linux-uclibcgnueabi/4.4.1/../../../../arm-hisiv100-linux-uclibcgnueabi/bin/ld: main: hidden symbol `__sync_fetch_and_add_4' in /opt/hisi-linux/x86-arm/arm-hisiv100-linux/bin/../lib/gcc/arm-hisiv100-linux-uclibcgnueabi/4.4.1/libgcc.a(linux-atomic.o) is referenced by DSO
/opt/hisi-linux/x86-arm/arm-hisiv100-linux/bin/../lib/gcc/arm-hisiv100-linux-uclibcgnueabi/4.4.1/../../../../arm-hisiv100-linux-uclibcgnueabi/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
makefile:22: recipe for target 'main' failed
make: *** [main] Error 1

回复

使用道具 举报

发表于 2016-5-9 09:01:07 | 显示全部楼层
以前我移植Ti平台的时候 好像LDLIBS = 还要加这些库的
-lstdc++   -lpthread  -lrt
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-9 12:50:47 | 显示全部楼层
piaobuliao 发表于 2016-5-9 09:01
以前我移植Ti平台的时候 好像LDLIBS = 还要加这些库的
-lstdc++   -lpthread  -lrt

加了 还是没用
回复 支持 反对

使用道具 举报

发表于 2016-6-15 15:37:41 | 显示全部楼层
  逗比我知道,并且解决了国内的嵌入式移植教程有问题。
问题特征  你试一下  readelf  -d  libopencv_objdetect.so
如果右端  Name/Value 一列 显示 的是
shared  library:[../../libopencv_core.so]  
shared library : [../../libopencv_imgproc.so]
.....
出现上述问题的库用来编译这个库就会出现你上面的警告,执行程序执行时需要 在执行程序所在目录../../lib 存放so库
哈哈! 麻痹,老子找了一周才发现TMD网上的垃圾海思移植教程都他妈的骗人的。
然后自己研究了一下opencv配置问题解决了
清查看opencv源码下platform 下面目录都有一个toolchain.cmake 自己把握 改下工具链 就可以了
回复 支持 反对

使用道具 举报

发表于 2018-1-2 09:29:59 | 显示全部楼层
你加载的是动态库,看下对应目录下面是否有动态库的文件?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-4-16 12:12 , Processed in 0.010536 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表