0

I have a software repo which I am trying to run on an ARM processor by cross-compiling it in my PC as a static binary.

I have downloaded openCV4.6 and I have created the cmake build directory using their aarch-64 toolchain. I have generated both static and shared libraries ,compiling once with BUILD_SHARED_LIBS=OFF and ON.

cd ~/opencv/platforms/linux
mkdir -p build_hardfp
cd build_hardfp
cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_TOOLCHAIN_FILE=../aarch64-gnueabi.toolchain.cmake ../../..
make
sudo make install

I could see all the static libraries and the includes go sit in the "/usr/local/lib" and "usr/local/include" Now in my CMake

cmake_minimum_required (VERSION 3.3)

project(MyProject)
find_package(Threads REQUIRED)
find_package(OpenCV 4.6 REQUIRED) 
include_directories(${OpenCV_INCLUDE_DIRS})
find_package(Boost REQUIRED)
include_directories(${Boost_INCLUDE_DIRS}) 
find_package(OpenMP REQUIRED)
include_directories(${OpenMP_INCLUDES})

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_C_COMPILER  aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g\+\+)

MESSAGE(STATUS "Include dirs ${OpenCV_INCLUDE_DIRS}")
MESSAGE(STATUS "LINK LIBRARIES ${OpenCV_LIBS}")
include_directories(${PROJECT_SOURCE_DIR})


add_library(MyProjLib STATIC ${MyProjSRC})
set_target_properties(MyProjLib PROPERTIES COMPILE_FLAGS "-std=c++14 -fopenmp -fPIC" )
target_link_libraries(MyProjLib -lrt ${CMAKE_THREAD_LIBS_INIT} -lgomp ${Boost_LIBRARIES} ${OpenCV_LIBS})#

add_executable(MyProjBinary MyProj/main.cpp ${MyProjSRC})
set_target_properties(MyProjBinary PROPERTIES COMPILE_FLAGS "-std=c++14 -fopenmp -fPIC -DBOOST_NO_CXX11_SCOPED_ENUMS")
target_link_libraries(MyProjBinary ${CMAKE_THREAD_LIBS_INIT} -lrt MyProjLib -lgomp ${Boost_LIBRARIES} ${OpenCV_LIBS})

##All include directory code

No the issue is, I get this weird error. I am stuck. Please help.

/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a(convert.dispatch.cpp.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libopencv_core.a: error adding symbols: file in wrong format

Where am I going wrong? Any insight would be appreciated.

The following is my platform.toolchain.cmake and I link it when I invoke the cmake

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(CMAKE_SYSROOT "/")

#set(GCC_COMPILER_VERSION "" CACHE STRING "GCC Compiler Version")
#set(GNU_MACHINE "aarch64-linux-gnu" CACHE STRING "GNU compiler triple")
set(CMAKE_C_COMPILER  aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g\+\+)

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

I also tried installing and linking to the aarch64 version of the library and it doesnot work.

Edited: toolchain.cmake to include CMAKE_SYSTEM_NAME. Since I have installed the openCV aarch64 libs and includes in the default location /usr/local/lib and /usr/local/include, my value for CMAKE_SYSROOT is "/"

 Could not find a package configuration file provided by "OpenCV" (requested
  version 4.6) with any of the following names:

    OpenCVConfig.cmake
    opencv-config.cmake

  Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
  "OpenCV_DIR" to a directory containing one of the above files.  If "OpenCV"
  provides a separate development package or SDK, be sure it has been
  installed.
user3443615
  • 155
  • 1
  • 1
  • 9
  • Setting `CMAKE_CXX_COMPILER` after the `project()` call is **wrong** in most cases, see [that my answer](https://stackoverflow.com/a/63944545/3440745). Setting `CMAKE_SYSTEM_NAME` after the `project()` call is always wrong. These variables should be set by your toolchain. Why do you set them in `CMakeLists.txt`? – Tsyvarev Sep 30 '22 at 15:44
  • I tried to make a toolchain.cmake as you said, and include it when I invoke the cmake command but that doesn't solve the problem. I tried linking it against aarch64, x86 both static and dynamic opencv libs. Still getting the error of incompatible library linkage attempt. – user3443615 Sep 30 '22 at 20:08
  • The error "Relocations in generic ELF (EM: 62)" means that you are trying to use x86 library, which is definitely not suited for ARM. See e.g. [that discussion](https://groups.google.com/g/android-ndk/c/iFzaG9pVYtY/m/DBTabH0bAwAJ) on google groups. It seems something wrong with your toolchain, which creates such OpenCV. But without viewing that toolchain we cannot help you. You could also check [CMake documentation](https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html) about cross-compiling and toolchains. – Tsyvarev Sep 30 '22 at 21:04
  • I have updated the documentation. Please let me know if this helps and if you see any errors in the toolchain.cmake – user3443615 Sep 30 '22 at 22:30
  • Your toolchain has no `CMAKE_SYSTEM_NAME` variable, no `CMAKE_SYSROOT` one. How is it expected to work? Have you tried to use your toolchain on a simple "Hello, world" program? – Tsyvarev Sep 30 '22 at 23:20
  • @Tsyvarev I have updated both the two variables. The find_package(OpenCV) breaks. I works when I native compile. Also the library found in the default location are the aarch64 version. But it is not able to find_package() OpenCV. Any insights would be appreciated. – user3443615 Oct 01 '22 at 14:51
  • 'Since I have installed the openCV aarch64 libs and includes in the default location /usr/local/lib and /usr/local/include, my value for CMAKE_SYSROOT is "/"' - This is a bad idea to install **cross-compiled** libraries and executables into the location where **native** things are expected. Moreover, `CMAKE_SYSROOT` denotes a directory on a host, which will be `/` on the target machine. If none directory has given property, then do not set `CMAKE_SYSROOT` at all. Instead, install OpenCV into some other directory, and set `CMAKE_PREFIX_PATH` pointed to that directory. – Tsyvarev Oct 01 '22 at 16:36
  • For debug why `find_package` doesn't work for you, use `--debug-find` option for CMake: https://cmake.org/cmake/help/latest/manual/cmake.1.html. With that option CMake will print which exact directories it examine for locate the package's configuration files. Compare these directories with the one you actually have these configuration files (`OpenCVConfig.cmake` or `opencv-config.cmake` in your case). – Tsyvarev Oct 01 '22 at 16:39

0 Answers0