paho_mqtt_c源码在mac上的编译

paho.mqtt.c 简介

paho.mqtt.c 是一个开源的 MQTT 客户端库,支持多种平台,包括 Linux、Windows、MacOS、Android、iOS等。

编译

  1. 下载源码到本地:git clone https://github.com/eclipse/paho.mqtt.c.git
  2. 下载CMakeTools
  3. 打开CMakeTools,选择源码路径,配置build目录,点击Configure,选择编译器XCode,点击Finish。
  4. 点击Generate,生成编译文件。
  5. 点击Open Project。从XCode 中打开编译文件。
  6. 在XCode 中选择All Build这一项Target,Build。
  7. 若需要编译Release版本,需要在在XCode 中目录Product中点击Archive。
  8. 此时build目录下src中会有Debug和Release两个文件夹,分别存放编译的Debug和Release版本。

若第三步中编辑CMAKE_OSX_ARCHITECTURE:arm64;armv7;x86_64可编译结构arm64的库(支持iOS64位真机),会提示如下错误:

1
2
ld: warning: ignoring file '/usr/local/Cellar/openssl@3/3.1.3/lib/libssl.3.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/openssl@3/3.1.3/lib/libcrypto.3.dylib': found architecture 'x86_64', required architecture 'arm64'

此时需要编译openssl包含arm64架构库,具体操作如下:
方式一:
通过OpenSSL-for-iPhone编译获取
方式二:
编译openssl源码获取

1
2
3
4
5
6
7
8
9
# iOS 构建 OpenSSL,支持 arm64 和 armv7。
./Configure iphoneos-cross
# macOS 构建 OpenSSL
./Configure darwin64-x86_64-cc

make

# 指定生成build目录
make install DESTDIR=./build/bin