CMake 交叉编译和链接动态库

时间:2021-07-11 18:39:14

标签: linux gcc cmake g++ cross-compiling

我正在尝试为 arm64 交叉编译 OpenCV 项目。

以下是我的工具链文件和 CMakeLists.txt:

# Set ROOTFS path
SET(CROSS_COMPILE aarch64-linux-gnu)
SET(CC_PREFIX /home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin)
SET(ROOTFS_PATH /home/yuriy/Documents/rootfs)

SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR arm)

# Enable cross compiler
SET(CMAKE_C_COMPILER ${CC_PREFIX}/${CROSS_COMPILE}-gcc)
SET(CMAKE_CXX_COMPILER ${CC_PREFIX}/${CROSS_COMPILE}-g++)
SET(CMAKE_LINKER ${CC_PREFIX}/${CROSS_COMPILE}-ld)
SET(CMAKE_AR ${CC_PREFIX}/${CROSS_COMPILE}-ar)
SET(CMAKE_OBJCOPY ${CC_PREFIX}/${CROSS_COMPILE}-objcopy)

# Crosscompile rootfs path for find_package and find_library
SET(CMAKE_FIND_ROOT_PATH ${ROOTFS_PATH})
SET(CMAKE_SYSROOT ${ROOTFS_PATH})

# Search for programs only in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)

# Search for libraries and headers only in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
cmake_minimum_required(VERSION 3.19)
project(MyProject)

set(CMAKE_CXX_STANDARD 20)

find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})

add_executable(MyProject main.cpp)
target_link_libraries(MyProject PUBLIC ${OpenCV_LIBS})

现在是编译输出(make VERBOSE=1):

/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ --sysroot=/home/yuriy/Documents/rootfs -g CMakeFiles/MyProject.dir/main.cpp.o -o MyProject  /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_shape.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_stitching.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_superres.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_videostab.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_aruco.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_bgsegm.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_bioinspired.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_ccalib.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_datasets.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_dpm.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_face.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_freetype.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_fuzzy.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_hdf.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_line_descriptor.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_optflow.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_plot.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_reg.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_saliency.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_stereo.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_structured_light.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_surface_matching.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_text.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_ximgproc.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_xobjdetect.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_xphoto.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_video.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_phase_unwrapping.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_rgbd.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_calib3d.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_features2d.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_flann.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_objdetect.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_ml.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_highgui.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_photo.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_videoio.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_imgproc.so.3.2.0 /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_core.so.3.2.0 
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libm.so.6, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_shape.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libhdf5_serial.so.100, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_hdf.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libtesseract.so.4, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_text.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libtbb.so.2, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_ximgproc.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkInteractionStyle-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkRenderingLOD-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkIOPLY-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkIOGeometry-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkFiltersTexture-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkIOExport-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkRenderingContextOpenGL-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkRenderingOpenGL-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkIOImage-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkIOCore-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkRenderingFreeType-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkRenderingCore-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkFiltersExtraction-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkImagingCore-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkFiltersSources-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkFiltersGeneral-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkFiltersCore-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkCommonExecutionModel-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkCommonDataModel-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkCommonTransforms-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkCommonMath-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libvtkCommonCore-6.3.so.6.3, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_viz.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libpthread.so.0, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_objdetect.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libgtk-3.so.0, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_highgui.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libgdk-3.so.0, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_highgui.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libcairo.so.2, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_highgui.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libgdk_pixbuf-2.0.so.0, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_highgui.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libgobject-2.0.so.0, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_highgui.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libglib-2.0.so.0, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_highgui.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libdc1394.so.22, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_videoio.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libavcodec.so.57, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_videoio.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libavformat.so.57, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_videoio.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libavutil.so.55, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_videoio.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libswscale.so.4, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_videoio.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libgphoto2.so.6, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_videoio.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libgphoto2_port.so.12, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_videoio.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libjpeg.so.8, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libwebp.so.6, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libpng16.so.16, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libgdcmMSFF.so.2.8, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libtiff.so.5, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libIlmImf-2_2.so.22, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libHalf.so.12, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libgdcmDSED.so.2.8, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libz.so.1, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_core.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libdl.so.2, needed by /home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_core.so.3.2.0, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libproj.so.12, needed by /home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libpoppler.so.73, needed by /home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libjson-c.so.3, needed by /home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libfreexl.so.1, needed by /home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libqhull.so.7, needed by /home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libgeos_c.so.1, needed by /home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libepsilon.so.1, needed by /home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libodbc.so.2, needed by /home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libodbcinst.so.2, needed by /home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libkmlbase.so.1, needed by /home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libkmldom.so.1, needed by /home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libkmlengine.so.1, needed by /home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libexpat.so.1, needed by /home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libxerces-c-3.2.so, needed by /home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libopenjp2.so.7, needed by /home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link)
/home/yuriy/Documents/toolchains/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libnetcdf.so.13, needed by 
/home/yuriy/Documents/rootfs/usr/lib/libgdal.so.20: undefined reference to `opj_read_header'
/home/yuriy/Documents/rootfs/usr/lib/aarch64-linux-gnu/libopencv_shape.so.3.2.0: undefined reference to `logf@GLIBC_2.17'
...

例如 gcc 找不到 libm.so.6 库。但是它存在于系统根目录中。

$ pwd
/home/yuriy/Documents/rootfs
$ find . -name "libm.so.6"
./lib/aarch64-linux-gnu/libm.so.6

似乎对于所有显式链接的库,cmake 都指定了它们的确切路径。但是,如果共享库依赖于任何一个,那么检测就会出现问题。似乎缺少 gcc 需要的参数,例如 rpath 或类似的东西,以便找到库。问题是如何告诉 cmake 添加此参数?还是我必须手动添加所有路径?

0 个答案:

没有答案
相关问题