编译Openssl
cd openssl
mkdir out
./Configure darwin64-x86_64-cc no-shared --prefix=`pwd`/out
make -j `nproc`
make install
这里darwin64-x86_64-cc可替换成其他的架构类型,比如苹果芯片用darwin64-arm64-cc,可以输入./configure --help查看所有支持的架构类型
编译完成后设置各种path,指向.a文件所在的文件夹, 后面编译libevent等库需要使用, 格式如(建议都设置上):
export OPENSSL_CRYPTO_LIBRARY=/Users/luojin/Documents/OpenSource/openssl-1.1.1q
export OPENSSL_INCLUDE_DIR=/Users/luojin/Documents/OpenSource/openssl-1.1.1q/include
export OPENSSL_ROOT_DIR=/Users/luojin/Documents/OpenSource/openssl-1.1.1q
export LDFLAGS=-L/Users/luojin/Documents/OpenSource/openssl-1.1.1q
export CPPFLAGS=-I/Users/luojin/Documents/OpenSource/openssl-1.1.1q/include
export CFLAGS=-I/Users/luojin/Documents/OpenSource/openssl-1.1.1q/include
export PKG_CONFIG_PATH=/Users/luojin/Documents/OpenSource/openssl-1.1.1q
编译libevent
cd libevent
mkdir out
./configure
cd out
cmake ..
make
在out/lib文件夹里面找到.dylib的库文件拷贝出来就可以了。
如果是需要.a文件的话,可以使用
./Configure --host=arm-apple-darwin22.6.0 --enable-static --prefix="$PREFIX"
make -j8
make install
这里$PREFIX 要填输出的目录,注意是绝对路径,而且不能有空格,否则make install的时候会报错,类似这样
make[2]: *** [install-libLTLIBRARIES] Error 64
make[1]: *** [install-am] Error 2
make: *** [install] Error 2
如果是编译iOS的话,要使用xcrun、xcodebuild之类的命令,比较麻烦,还好有个专门的脚本可以使用 github.com/szuwest/lib…
编译coturn
cd cotton
./configure
cd make
cmake ..
make
这里要注意按官方github的说法,只执行./configure和make的话,只能得到coturnclient,而没有coturnserver和coturncommon, 集成到应用后编译通不过。
编译paho.mqtt
cd paho.mqtt.c/cmake
cmake .. -DPAHO_BUILD_STATIC=TRUE -DCMAKE_INSTALL_PREFIX="$PREFIX"
make
make install
DPAHO_BUILD_STATIC=TRUE 这个选项如果不加就是生成.so文件,macOS和iOS无法使用
$PREFIX为要输出的目录,库文件和头文件都在这里面
参考: