迟到的答案,但这是一个使用 iconv 库(boost v1_64_0)在 iOS 上支持 Boost.Locale 的工作配置。https://github.com/Cogosense/iOSBoostFramework提供了一个实现,它使用 Makefile 为 armv7、armv7s、arm64、i386 和 x86_64 架构构建 boost 框架。
要构建 32 位 ARM,请创建一个包含以下内容的user-config.jam :
using clang-darwin : arm
: xcrun --sdk iphoneos clang++
: <cxxflags>"-miphoneos-version-min=8.0 -arch armv7s -DBOOST_AC_USE_PTHREADS -DBOOST_SP_USE_PTHREADS -stdlib=libc++ -std=c++11 -D_LITTLE_ENDIAN -Wall -pedantic -Wno-unused-variable"
<linkflags>"-arch armv7s"
<striper>
;
架构也可以设置为armv7 ,根据自己的喜好更改cxxflags的值,但 -arch标志是必需的。
使用以下构建命令为 32 位 iPhone 目标构建 boost:
BOOST_BUILD_USER_CONFIG=<path-to-arm32-jam-config>/user-config.jam \
SDK_PATH=$(xcrun --sdk iphoneos --show-sdk-platform-path) \
./b2 -sICONV_PATH=$SDK_PATH/Developer/SDKs/iPhoneOS.sdk/usr \
toolset=clang-darwin-arm \
target-os=iphone
要构建 64 位 ARM,请创建一个包含以下内容的user-config.jam :
using clang-darwin : arm64
: xcrun --sdk iphoneos clang++
: <cxxflags>"-miphoneos-version-min=8.0 -arch arm64 -DBOOST_AC_USE_PTHREADS -DBOOST_SP_USE_PTHREADS -stdlib=libc++ -std=c++11 -D_LITTLE_ENDIAN -Wall -pedantic -Wno-unused-variable"
<linkflags>"-arch arm64"
<striper>
;
使用以下构建命令为 64 位 iPhone 目标构建 boost:
BOOST_BUILD_USER_CONFIG=<path-to-arm64-jam-config>/user-config.jam \
SDK_PATH=$(xcrun --sdk iphoneos --show-sdk-platform-path) \
./b2 -sICONV_PATH=$SDK_PATH/Developer/SDKs/iPhoneOS.sdk/usr \
toolset=clang-darwin-arm64 \
target-os=iphone
要构建 32 位 x86 模拟器,请创建一个包含以下内容的user-config.jam :
using clang-darwin : x86
: xcrun --sdk iphonesimulator clang++
: <cxxflags>"-miphoneos-version-min=8.0 -arch i386 -DBOOST_AC_USE_PTHREADS -DBOOST_SP_USE_PTHREADS -stdlib=libc++ -std=c++11 -Wall -pedantic -Wno-unused-variable"
<linkflags>"-arch i386"
<striper>
;
使用以下构建命令为 32 位 iPhone 模拟器构建 boost:
BOOST_BUILD_USER_CONFIG=<path-to-x86-jam-config>/user-config.jam \
SDK_PATH=$(xcrun --sdk iphonesimulator --show-sdk-platform-path)
./b2 -sICONV_PATH=$SDK_PATH/Developer/SDKs/iPhoneSimulator.sdk/usr \
toolset=clang-darwin-i386 \
target-os=iphone
要构建 64 位 x86 模拟器,请创建包含以下内容的user-config.jam :
using clang-darwin : x86_64
: xcrun --sdk iphonesimulator clang++
: <cxxflags>"-miphoneos-version-min=8.0 -arch x86_64 -DBOOST_AC_USE_PTHREADS -DBOOST_SP_USE_PTHREADS -stdlib=libc++ -std=c++11 -Wall -pedantic -Wno-unused-variable"
<linkflags>"-arch x86_64"
<striper>
;
使用以下构建命令为 64 位 iPhone 模拟器构建提升:
BOOST_BUILD_USER_CONFIG=<path-to-x86_64-jam-config>/user-config.jam \
SDK_PATH=$(xcrun --sdk iphonesimulator --show-sdk-platform-path)
./b2 -sICONV_PATH=$SDK_PATH/Developer/SDKs/iPhoneSimulator.sdk/usr \
toolset=clang-darwin-x86_64 \
target-os=iphone