如何解决libdl和librt导致的OPENCV交叉编译链接错误
我正在尝试为 ARM 目标交叉编译 OpenCV 4.5.1。我的主机系统是 Linux 20.04(基于 Intel)。我正在使用 CMake 3.16.3。没有额外模块的编译工作正常。添加它们时,最后出现链接错误:
[ 86%] Building CXX object modules/gapi/CMakeFiles/opencv_gapi.dir/src/api/kernels_video.cpp.o
[ 86%] Linking CXX executable ../../../../bin/opencv_waldboost_detector
/home/alexis/Desktop/snapdragon/cross/lib/gcc/arm-linux-gnueabi/8.1.0/../../../../arm-linux-gnueabi/bin/ld: warning: libdl.so.2,needed by ../../../../lib/libopencv_core.so.4.5.1,not found (try using -rpath or -rpath-link)
/home/alexis/Desktop/snapdragon/cross/lib/gcc/arm-linux-gnueabi/8.1.0/../../../../arm-linux-gnueabi/bin/ld: warning: librt.so.1,not found (try using -rpath or -rpath-link)
../../../../lib/libopencv_core.so.4.5.1: undefined reference to `dladdr@GLIBC_2.4'
../../../../lib/libopencv_core.so.4.5.1: undefined reference to `dlclose@GLIBC_2.4'
../../../../lib/libopencv_core.so.4.5.1: undefined reference to `dlopen@GLIBC_2.4'
../../../../lib/libopencv_core.so.4.5.1: undefined reference to `dlsym@GLIBC_2.4'
../../../../lib/libopencv_core.so.4.5.1: undefined reference to `clock_gettime@GLIBC_2.4'
collect2: error: ld returned 1 exit status
我知道问题是因为找不到两个库 libdl 和 librt。缺少的库位于非标准路径上。我试图将 LD_LIBRARY_PATH 设置为包含所请求库的文件夹,但没有成功。
不知道我还能尝试什么。错误消息说尝试使用 -rpath 或 -rpath-link,但我不知道该怎么做。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。