交叉编译 arm 依赖于共享对象,仅适用于 x86-64

时间:2021-01-27 11:51:45

标签: c++ cmake cross-compiling

我在机器人通信系统工作。该系统在 Ubuntu 上运行。为了获得有效的通信,我需要安装一个 debian 包,该包安装了一个带有共享对象的库。 我想让它在 ARM 设备上工作。我无法在 ARM 设备上安装 debian-package。我正在考虑尝试交叉编译二进制文件。问题在于它依赖于 x86-64 的二进制文件。有没有办法让可执行文件在 ARM 设备上运行?

为了编译,我使用了一个像这样(没有交叉编译)的 cmake 文件:

cmake_minimum_required(VERSION 2.8)

project(dummy_service)

find_package(XXX)
include_directories(${XXX_INCLUDE_DIR})
link_directories(${XXX_LIBRARY_DIR})

XXX_message_library(
  TARGET XXX_messages
  DIRECTORY msg
  STATIC)

add_executable(dummy_service src/dummy_service.c++)

target_link_libraries(dummy_service ${XXX_LIBRARY} dummy_messages)

由于XXX图书馆不属于我们公司所有,也不是公开的,所以我不能谈论它,但如果你有任何问题,我可以回答。 debian 包包括以下对象:

-bin
--xxx-gen 
--xxx-core 
--xxx-master

-include
--headerfiles
---xxx.h
---types.h
---internal
----utilities.h
----descriptors.h
----logging.h
----master.h
----service.h

-lib
--libxxx.so
--cmake
---.cmake files

0 个答案:

没有答案
相关问题