openwrt中添加三方包paho.mqtt.c
最近在使用全志的tina4.0做开发,tina4.0是基于openwrt的,之前没做过openwrt开发,这里记录下过程中遇到的问题。
在tina4.0中添加三方包分两步: (1) 将下载好的paho.mqtt.c-1.3.14.zip放到dl中。(2) 在package/prize/libpaho-mqtt中新建Makefile
include $(TOPDIR)/rules.mk # 库基本信息 PKG_NAME:=libpaho-mqtt PKG_VERSION:=1.3.14 PKG_RELEASE:=1 PKG_LICENSE:=EPL-2.0 PKG_SOURCE_URL:=https://github.com/eclipse/paho.mqtt.c/archive/refs/tags/v$(PKG_VERSION).zip PKG_SOURCE:=paho.mqtt.c-$(PKG_VERSION).zip CMAKE_INSTALL:=1 PKG_HASH:=ad67f3... PKG_BUILD_DIR := $(COMPILE_DIR)/paho.mqtt.c-$(PKG_VERSION) include $(BUILD_DIR)/package.mk # include $(BUILD_DIR)/cmake.mk # paho-mqtt-c 使用 CMake 构建,需引入 cmake 支持 TARGET_LDFLAGS += -ldl # 定义库在 menuconfig 中的信息 define Package/libpaho-mqtt SECTION:=libs CATEGORY:=Libraries TITLE:=Eclipse Paho MQTT C Client Library URL:=https://github.com/eclipse/paho.mqtt.c DEPENDS:=+libc +libpthread +libopenssl # 添加 OpenSSL 依赖(如果需要 SSL 支持) endef define Package/libpaho-mqtt/description Eclipse Paho MQTT C client library for MQTT 3.1/3.1.1 endef define Build/InstallDev $(INSTALL_DIR) $(1)/usr/include $(CP) $(PKG_BUILD_DIR)/src/*.h $(1)/usr/include $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_BUILD_DIR)/build/output/libpaho-*.so* $(1)/usr/lib/ endef # 安装库到目标系统 define Package/libpaho-mqtt/install $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_BUILD_DIR)/build/output/libpaho-*.so* $(1)/usr/lib/ endef $(eval $(call BuildPackage,libpaho-mqtt))
在编译中遇到的问题记录:
1、在完成上述两个步骤后,在执行make package/libpaho-mqtt/compile时提示:No rule to make target 'package/libpaho-mqtt/compile'. Stop. 原因有两个:
(1) 添加完上述步骤后,需要执行make menuconfig,选中libpaho-mqtt
(2) 路径和包名对不上:define Package/libpaho-mqtt宏,所以package/prize/libpaho-mqtt,最后这个路径一定是libpaho-mqtt,路径和宏名需要统一
2、目标包的编译方式:如果要使用CMake进行编译,则需要include $(BUILD_DIR)/cmake.mk

浙公网安备 33010602011771号