libffi可供移動端動態(tài)生成函數(shù)枪蘑,調(diào)用函數(shù)唱歧。git地址:https://github.com/libffi/libffi
由于之前使用的libffi是從項目中copy出來的,具體版本未知球及,只知道線上穩(wěn)定運行氧骤。
中間libffi也有一些問題被修復(fù)所以更新libffi提上了日程,很多同學(xué)自己編譯反饋有編譯問題吃引,所以我這里重新編了一個包筹陵。順便記錄下來刽锤,以供后人方便。
1. 下載源碼
https://github.com/libffi/libffi/releases
cd libffi
2. 生成對應(yīng)架構(gòu)C代碼
python generate-darwin-source-and-headers.py
3. 編譯libff.a
根據(jù)你需要的架構(gòu)編譯朦佩,我這里為TTDFKit使用并思,應(yīng)用在手機端,所以要打真機的armv7,arm64
模擬器i386,x86_64.
python generate-darwin-source-and-headers.py
pushd build_iphoneos-arm64
make
popd
pushd build_iphoneos-armv7
make
popd
pushd build_iphonesimulator-i386
make
popd
pushd build_iphonesimulator-x86_64
make
popd
4. 多架構(gòu)合并
將上邊制作4種架構(gòu)的libffi.a合并语稠。
lipo -create build_iphoneos-arm64/.libs/libffi.a \
build_iphoneos-armv7/.libs/libffi.a \
build_iphonesimulator-i386/.libs/libffi.a \
build_iphonesimulator-x86_64/.libs/libffi.a \
-output libffi.a