当前位置: 首页 > 知识库问答 >
问题:

泛美卫生组织C(ARM)的交叉编译问题

司空皓
2023-03-14

我需要帮助,因为我试图用c为我的arm设备交叉编译paho库。

我使用Ubuntu20.04虚拟机,我的交叉编译器是gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf_5.3_sub1.0.3.tgz。这里是不同的步骤。

git clone https://github.com/eclipse/paho.mqtt.c.git

sudo apt-get update
sudo apt-get install build-essential gcc make cmake cmake-gui cmake-curses-gui
sudo apt-get install fakeroot fakeroot devscripts dh-make lsb-release
sudo apt-get install libssl-dev 
sudo apt-get install doxygen graphviz
mkdir build.paho
cd build.paho
 # specify the cross compiler

SET(CMAKE_C_COMPILER    /opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc)
SET(CMAKE_CXX_COMPILER  /opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++)
SET(CMAKE_STRIP /opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip)

#SET(OPENSSL_LIB_SEARCH_PATH opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib)
#SET(OPENSSL_INC_SEARCH_PATH opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/openssl)
#SET(OPENSSL_SEARCH_PATH "/opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib;/opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/bin/")

SET(OPENSSL_ROOT_DIR /opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/bin)
SET(OPENSSL_LIBRARIES /opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib)
#SET(OPENSSL_LIBRARIES /opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/openssl)
SET(OPENSSL_INCLUDE_DIR /opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/openssl)
SET(OPENSSL_CRYPTO_LIBRARY /opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/openssl/libcrypto.so)
SET(OPENSSL_SSL_LIBRARY /opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib/libssl.so)

SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR arm)
SET(CMAKE_SYSTEM_VERSION 1)
cmake \
-GNinja \
-DPAHO_WITH_SSL=TRUE \
-DPAHO_BUILD_SAMPLES=TRUE \
-DPAHO_BUILD_DOCUMENTATION=TRUE \
-DCMAKE_TOOLCHAIN_FILE=../cmake/linaro.cmake ..

我有多个警告

--C编译器标识为GNU 5.3.1--检查正常运行的C编译器:/opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc--检查正常运行的C编译器:/opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc--工作--检测C编译器ABI信息--检测C编译器ABI信息--检测C编译器ABI信息3--CMake系统名:Linux--时间戳为2021-05-04T12:39:01Z--找到openSSL://opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/bin/libcrypto

--在src/cmakelists.txt:200(ADD_LIBRARY):配置done CMake Warning(dev):未设置策略CMP0028:目标名称中的双冒号表示别名或导入的目标。运行“cmake-help-policy cmp0028”获取策略详细信息。使用cmake_policy命令设置策略并取消此警告。

目标“PAHO-MQTT3CS”链接到目标“OpenSSL::Crypto”,但未找到目标。是否缺少导入目标的find_package()调用,或者缺少别名目标?此警告适用于项目开发人员。使用-wno-dev来抑制它。

src/cmakelists.txt:201(ADD_LIBRARY):CMP0028策略未设置:目标名称中的双冒号表示别名或
导入的目标。运行“cmake-help-policy cmp0028”获取策略详细信息。使用cmake_policy命令设置策略并取消此警告。

目标“PAHO-MQTT3AS”链接到目标“OpenSSL::Crypto”,但未找到目标。是否缺少导入目标的find_package()调用,或者缺少别名目标?此警告适用于项目开发人员。使用-wno-dev来抑制它。

目标“Base64TestopEnssl”链接到目标“OpenSSL::Crypto”,但未找到该目标。是否缺少导入目标的find_package()调用,或者缺少别名目标?此警告适用于项目开发人员。使用-wno-dev来抑制它。

test/cmakelists.txt:516(ADD_EXECUTABLE):
未设置策略CMP0028:目标名称中的双冒号表示别名或导入的目标。运行“cmake-help-policy cmp0028”获取策略详细信息。使用cmake_policy命令设置策略并取消此警告。

目标“Test3”链接到目标“OpenSSL::Crypto”,但未找到目标。是否缺少导入目标的find_package()调用,或者缺少别名目标?此警告适用于项目开发人员。使用-wno-dev来抑制它。

当我尝试推出忍者包时

[9/50]链接C共享库src/libpaho-MQTT3CS.SO.1.3.8失败:src/libpaho-MQTT3CS.SO.1.3.8:&/opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc-fpic-wl,-init,mqttclient_init-shared-wl,-soname,libpaho-Mqtt3cs.so.1.3.8 C/cmakefiles/common_ssl_obj.dir/mqttprotocolclient.C.o src/cmakefiles/common_ssl_obj.dir/clients.C.o src/cmakefiles/common_ssl_obj.dir/clients.C.o src/cmakefiles/common_ssl_obj.dir/utf.8.C.o src/cmakefiles/common_ssl_obj.dir/mqttpacket.C.o等.C.o src/cmakefiles/common_ssl_obj.dir/log.C.o src/cmakefiles/common_ssl_obj.dir/mqttpersistence.C.o src/cmakefiles/common_ssl_obj.dir/mqttpersistence.C.o src/cmakefiles/common_ssl_obj.dir/thread.C.o src/cmakefiles/common_ssl_obj.dir/thread.C.osl_obj.dir/socketBuffer.co src/cmakefiles/common_ssl_obj.dir/linkedlist.co src/cmakefiles/common_ssl_obj.dir/mqttproperties.co src/cmakefiles/common_ssl_obj.dir/mqttproperties.C.o src/cmakefiles/common_ssl_obj.dir/mqttreasoncodes.co cmakefiles/common_ssl_obj.dir/heap.C.o src/cmakefiles/paho-Mqtt3cs.dir/mqttclient.C.o src/cmakefiles/paho-Mqtt3cs.dir/slsocket.C.o_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/5.3.1/../../..//../arm-linux-gnueabihf/bin/ld ;:ne peut trouver-lopenssl::crypto collect2:错误:ld返回1退出状态[11/50]构建C对象src/cmakefiles/paho-Mqtt3as.dir/sslsocket.C.o ninja:build stopped:subcommand失败。

有人有主意吗?

对我来说奇怪的是这一行--发现openssl://opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/bin/libcrypto。

提前致谢

共有1个答案

王宜
2023-03-14

使用新的编译器gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf解析。

 类似资料:
  • 我对Python有一个问题(我是一个Python noob,正在学习它)。我在Debian9系统上使用了2.7.9版本。我在Python中安装了paho和tinkerforge包。 我使用Paho MQTT客户机开发了一个脚本来连接我的mosquitto代理。我想使用加密连接。我的连接在未加密时工作正常,但在加密时失败。在openHAB(MQTT-Subscriber)和MQTTFX(MQTT-S

  • 本文档说明如何在kali linux上配置ARM交叉编译环境,是我们多份关于”定制ARM镜像”的文档的起点. 开发机的配置 编译内核生成镜象通常需要大量硬盘空间.确保你的开发机至少有50G可用硬盘空间以及足够的内存,CPU不要太差. 安装依赖 先安装ARM交叉编译所需的依赖. apt-get install git-core gnupg flex bison gperf libesd0-dev b

  • 我试图交叉编译一个linux系统的简单hello world程序。 我有以下资料: null 我试图运行/lib/libc.so.0来获取版本信息,但出现了一个分段错误。它似乎用-static编译解决了这个问题。所以我想这是libc库的问题。谢谢你的帮助。

  • 安装gcc进行ARM交叉编译的问题 我一直在尝试安装gcc-arm-linux-fnueabi包,并且通过几种不同的方法安装了几次,但似乎总是缺少includes目录中的C++文件夹。 我的机器:32&64位英特尔i5处理器,在华硕上运行Ubuntu 14.10 目标设备:Beaglebone(黑色)

  • 我正在尝试为Android ARM交叉编译llvm/clang。 我也尝试了这里列出的所有步骤,以及在这里找到的指南,但没有运气。 任何帮助都将不胜感激。谢了! 编辑:现在我正在使用以下命令: 错误消息:CLANG36++:警告:编译过程中未使用参数:'-bundle'/users/paschalis/androide/toolchains/gcc/bin/../lib/gcc/arm-linux