ros cross compile failed
Here`s my toolchain cmake file
#File rostoolchain.cmake
set(CMAKESYSTEMNAME Linux) set(CMAKESYSTEMPROCESSOR aarch64)
set(CMAKECCOMPILER /usr/bin/aarch64-linux-gnu-gcc-8) set(CMAKECXXCOMPILER /usr/bin/aarch64-linux-gnu-g++-8) #set(CMAKECCOMPILERFORCED /usr/bin/aarch64-linux-gnu-gcc-8) #set(CMAKECXXCOMPILERFORCED /usr/bin/aarch64-linux-gnu-g++-8)
set(CMAKECFLAGS -fpermissive) set(CMAKECXXFLAGS -fpermissive)
#SET(CMAKE_SYSROOT "/opt/ros/melodic")
set(CMAKEFINDROOTPATH
$ENV{CMAKESYSROOT} /opt/ros/melodic $ENV{HOME}/crosscompile $ENV{HOME}/crosscompile/lib $ENV{HOME}/crosscompile/usr/lib /home/ysc/crosscompile/usr/lib $ENV{HOME}/crosscompile/usr/local/lib $ENV{HOME}/crosscompile/lib/aarch64-linux-gnu $ENV{HOME}/crosscompile/usr/lib/aarch64-linux-gnu $ENV{HOME}/crosscompile/usr/include ) set(CMAKEFINDROOTPATHMODEPROGRAM NEVER) set(CMAKEFINDROOTPATHMODELIBRARY ONLY) set(CMAKEFINDROOTPATHMODEINCLUDE ONLY) set(CMAKEFINDROOTPATHMODEPACKAGE ONLY)set(LIBRARYPATH /home/ysc/crosscompile/usr/lib)
includedirectories( "/$ENV{HOME}/crosscompile/usr/include" )
linkdirectories( "/home/ysc/crosscompile/usr/lib" )
#set(CMAKECFLAGS "${CMAKECFLAGS} --sysroot=${CMAKEFINDROOTPATH}" CACHE INTERNAL "" FORCE) #set(CMAKECLINKFLAGS "${CMAKECLINKFLAGS} --sysroot=${CMAKEFINDROOTPATH}" CACHE INTERNAL "" FORCE) #set(CMAKECXXFLAGS "${CMAKECXXFLAGS} --sysroot=${CMAKEFINDROOTPATH}" CACHE INTERNAL "" FORCE) #set(CMAKECXXLINKFLAGS "${CMAKECXXLINKFLAGS} --sysroot=${CMAKEFINDROOTPATH}" CACHE INTERNAL "" FORCE)
#list(APPEND CMAKELIBRARYPATH "/$ENV{HOME}/cross_compile/usr/lib")
#set(CMAKELIBRARYPATH
## /opt/ros/melodic/lib/aarch64-linux-gnu ##$ENV{HOME}/crosscompile/opt/ros/melodic/lib #$ENV{HOME}/crosscompile/lib #$ENV{HOME}/crosscompile/usr/lib #$ENV{HOME}/crosscompile/usr/local/lib #$ENV{HOME}/crosscompile/lib/aarch64-linux-gnu #$ENV{HOME}/crosscompile/usr/lib/aarch64-linux-gnu)#set(CMAKEINCLUDEPATH #$ENV{HOME}/crosscompile/usr/include #$ENV{HOME}/crosscompile/usr/include/freetype2 #$ENV{HOME}/crosscompile/usr/include/aarch64-linux-gnu #$ENV{HOME}/crosscompile/usr/local/include)
#set(LDLIBRARYPATH ## /opt/ros/melodic/lib/aarch64-linux-gnu ##$ENV{HOME}/crosscompile/opt/ros/melodic/lib #$ENV{HOME}/crosscompile/lib #$ENV{HOME}/crosscompile/usr/lib #$ENV{HOME}/crosscompile/usr/local/lib #$ENV{HOME}/crosscompile/lib/aarch64-linux-gnu #$ENV{HOME}/crosscompile/usr/lib/aarch64-linux-gnu) #message(STATUS "rostoolchain LDLIBRARYPATH ${LDLIBRARYPATH}")
set(PYTHONEXECUTABLE /usr/bin/python2.7) #set(BOOSTROOT $ENV{HOME}/crosscompile/usr) set(PCLROOT $ENV{HOME}/crosscompile/usr) set(PCLDIR $ENV{HOME}/cross_compile/usr/lib/aarch64-linux-gnu/cmake/pcl)
And here`s my report of bugs.
[ 38%] Linking CXX shared library /home/ysc/heightmapv1ws/devel/lib/libgridmap_transformer.so /usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libOpenNI.so when searching for -lOpenNI
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible //usr/lib/libOpenNI.so when searching for -lOpenNI
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: cannot find -lOpenNI
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libOpenNI2.so when searching for -lOpenNI2
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible //usr/lib/libOpenNI2.so when searching for -lOpenNI2
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: cannot find -lOpenNI2
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libvtkWrappingTools-6.3.a when searching for -lvtkWrappingTools-6.3
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible //usr/lib/libvtkWrappingTools-6.3.a when searching for -lvtkWrappingTools-6.3
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: cannot find -lvtkWrappingTools-6.3
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libPocoFoundation.so when searching for -lPocoFoundation
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible //usr/lib/libPocoFoundation.so when searching for -lPocoFoundation
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: cannot find -lPocoFoundation
collect2: error: ld returned 1 exit status
driver/deeproboticsgridmaptransformer/CMakeFiles/gridmaptransformer.dir/build.make:355: recipe for target '/home/ysc/heightmapv1ws/devel/lib/libgridmaptransformer.so' failed
make[2]: *** [/home/ysc/heightmapv1ws/devel/lib/libgridmap_transformer.so] Error 1
CMakeFiles/Makefile2:3687: recipe for target 'driver/deeproboticsgridmaptransformer/CMakeFiles/gridmap_transformer.dir/all' failed
make[1]: *** [driver/deeproboticsgridmaptransformer/CMakeFiles/gridmap_transformer.dir/all] Error 2
[ 40%] Linking CXX shared library /home/ysc/heightmapv1ws/devel/lib/libdeeproboticslocalheightmap_library.so
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libOpenNI.so when searching for -lOpenNI
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible //usr/lib/libOpenNI.so when searching for -lOpenNI
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: cannot find -lOpenNI
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libOpenNI2.so when searching for -lOpenNI2
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible //usr/lib/libOpenNI2.so when searching for -lOpenNI2
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: cannot find -lOpenNI2
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libvtkWrappingTools-6.3.a when searching for -lvtkWrappingTools-6.3
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible //usr/lib/libvtkWrappingTools-6.3.a when searching for -lvtkWrappingTools-6.3
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: cannot find -lvtkWrappingTools-6.3
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible /usr/lib/../lib/libPocoFoundation.so when searching for -lPocoFoundation
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: skipping incompatible //usr/lib/libPocoFoundation.so when searching for -lPocoFoundation
/usr/lib/gcc-cross/aarch64-linux-gnu/8/../../../../aarch64-linux-gnu/bin/ld: cannot find -lPocoFoundation
collect2: error: ld returned 1 exit status
localheightmap/deeproboticslocalheightmap/CMakeFiles/deeproboticslocalheightmaplibrary.dir/build.make:515: recipe for target '/home/ysc/heightmapv1ws/devel/lib/libdeeproboticslocalheightmaplibrary.so' failed
make[2]: *** [/home/ysc/heightmapv1ws/devel/lib/libdeeproboticslocalheightmap_library.so] Error 1
CMakeFiles/Makefile2:5895: recipe for target 'localheightmap/deeproboticslocalheightmap/CMakeFiles/deeproboticslocalheightmap_library.dir/all' failed
make[1]: *** [localheightmap/deeproboticslocalheightmap/CMakeFiles/deeproboticslocalheightmap_library.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed
I`ve got libOpenNI.so in ~/cross_compile/usr/lib, so it comfuse me why compiler search into the /usr/lib/gcc-cross dir? ```
ysc@u18:~/cross_compile/usr/lib$ ls | grep libOpenNI.so libOpenNI.so libOpenNI.so.0
ysc@u18:~/cross_compile/usr/lib$ file libOpenNI.so.0 libOpenNI.so.0: ELF 64-bit LSB shared object, ARM aarch64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=b6a806949fe1d2dcb68e120f0b3d6e4098959b8f, stripped ```
Asked by zox on 2023-06-13 09:49:14 UTC
Comments