基本上,我已经使用Yocto构建环境在我的rootfs中安装了paho-mqtt-c库。由于它已经包含在meta-oe层中,因此我只需要将该配方添加到IMAGE_INSTALL_append变量中即可。
我通过检查以下内容确认了这一点:
root@am65xx-evm:/usr/lib# ls | grep mqtt
libpaho-mqtt3a.so.1
libpaho-mqtt3a.so.1.0
libpaho-mqtt3as.so.1
libpaho-mqtt3as.so.1.0
libpaho-mqtt3c.so.1
libpaho-mqtt3c.so.1.0
libpaho-mqtt3cs.so.1
libpaho-mqtt3cs.so.1.0
作为新手,他们需要构建交叉编译的应用程序并设置工具链,我有一个基本问题,我无法确切找到答案。
现在我的目标计算机已经安装了库,如何在运行Ubuntu 18.04 LTS的主机上开发应用程序?
我可以执行apt-get安装并获取相同的库,但是使用交叉编译器编译C文件时,它看不到MQTT库。
例如:
~/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc mqtt-test.c -l paho-mqtt3c
mqtt-test.c:4:10: fatal error: MQTTClient.h: No such file or directory
#include "MQTTClient.h"
^~~~~~~~~~~~~~
compilation terminated.
答案 0 :(得分:0)
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "file://mqtt-test.c \
file://COPYING"
S = "${WORKDIR}"
TARGET_CC_ARCH += "${LDFLAGS}"
DEPENDS = "paho-mqtt-c"
do_compile() {
${CC} mqtt-test.c -o mqtt-test ${CFLAGS} -lpaho-mqtt3c
}
do_install() {
install -d ${D}${bindir}
install -m 0755 ${WORKDIR}/mqtt-test ${D}${bindir}
}
忽略lmbench和hello-world,它们是TI教程中的示例。
通知DEPENDS = "paho-mqtt-c"
显然,这次带有-lpaho-mqtt3c
的{{1}}标志似乎可以正常工作。
我仍然想知道为什么我不能简单地调用Linaro编译器并将其单独编译。