要为iPhone设备编译PJSIP库,我正在使用此代码
make distclean && make clean
ARCH='-arch arm64' ./configure-iphone --enable-opus-codec
make dep
make
此代码允许我仅为单一架构安装我的应用程序。 为所有架构(armv7,armv7s,arm64,i386,x86_64)编译pjsip,我可以使用哪个命令或工具
答案 0 :(得分:4)
10.7
10.
10
???? what should the field contain
答案 1 :(得分:2)
为所有设备编译的步骤。
例如。
-create /libsrtp-arm64-apple-darwin_ios.a /libsrtp-i386-apple-darwin_ios.a -output output_file_name
然后使用output_file_name.a
作为所有设备和模拟器的通用库
检查支持的架构:output_file_name.a
lipo -info name_of_static_lib
output :
/libsrtp-universal-apple-darwin_ios.a are: armv7 armv7s i386 x86_64 arm64
Compile PJSIP 2.5 Library for all archietectures
由于
答案 2 :(得分:1)
我们写了一个cocoapod,它将创建一个可以包含在项目中的静态库。目前,您只能在Objective C cocoapod环境中使用它。我们正在开发一个版本,它将创建一个动态库,以便它可以与Swift一起使用。
请查看:
https://github.com/VoIPGRID/Vialer-pjsip-iOS
我们制作了一个开源包装器,可以更轻松地将PJSIP集成到您的iOS项目中:
答案 3 :(得分:0)
像发布的那样合并
lipo -create / My \ Project / pjsip-universal / x86_64 / libgsmcodec-x86_64-apple-darwin_ios.a / My \ Project / pjsip-universal / i386 / libgsmcodec-i386-apple-darwin_ios.a / My \ Project / pjsip-universal / armv7s / libgsmcodec-armv7s-apple-darwin_ios.a / My \ Project / pjsip -universal / armv7 / libgsmcodec-armv7-apple-darwin_ios.a / My \ Project / pjsip-universal / arm64 / libgsmcodec-arm64-apple-darwin_ios.a -output / My \ Project / pjsip-universal / universal / libgsmcodec-universal-apple-darwin_ios.a
最后测试它
lipo -info / My \ Project / pjsip-universal / libgsmcodec-universal-apple-darwin_ios.a
输出: 胖文件中的体系结构:/ My Project / pjsip-universal / libgsmcodec-universal-apple-darwin_ios.a是: i386 armv7s armv7 x86_64 arm64
生成通用架构后:
点击此链接,在链接
中的此行添加项目将标题文件添加到项目中
希望这会对你有所帮助。
答案 4 :(得分:0)
你可以在GitHub上查看this项目,它的作者在为所有架构构建pjsip方面做得很好,他甚至提供了podspec以便于CocoaPods的集成。
答案 5 :(得分:0)
我正在使用这个脚本为我的archs构建pjsip。
我在 pjsip 根文件夹中运行它,它会创建一个 uni 文件夹,其中包含我随后链接/添加到的结果库我的项目。
#!/bin/bash
ARCHS="armv7 armv7s arm64"
mkdir -p uni
echo "Compiling..."
for arch in $ARCHS
do
echo $arch
echo "=================================="
echo
ARCH="-arch $arch" ./configure-iphone && make dep && make clean && make
echo "Done."
echo
done
RESULT_PATHS="pjlib/lib pjlib-util/lib pjmedia/lib pjsip/lib pjnath/lib third_party/lib"
for path in $RESULT_PATHS
do
echo $path
for file in `ls $path/*-armv7-*`
do
library=`echo $file | sed "s/-armv7-\(.*$\)//g"`
library_tail=`echo $file | sed "s/.*-armv7-//g"`
lipo -arch armv7 $library-armv7-$library_tail -arch armv7s $library-armv7s-$library_tail -arch arm64 $library-arm64-$library_tail -create -output $library.a
cp -vi $library.a uni
done
done