Nit*_*hel 19 static-libraries ios ios7 arm64 xcode5.1
几天前我创建的静态库(Universal)工作正常Xcode5.0 SDK7
.更新Xcode5.1
后SDK7.1
,如果我选择模拟器不起作用iPhone Retina(4-inch 64-bit)
.然后我将使用Bellow设置更改来更新我的lib.
我为三个目标做同样的事情: -
对于运动模拟器以及设备我把Universal lib和这个我运行脚本这个: -
在此之后我再次构建lib并使用我之前完成的项目.但仍然遇到同样的问题iPhone Retina(4-inch 64-bit)
Undefined symbols for architecture x86_64:
所以,我的问题是,为arm64更新lib需要进行任何其他更改,或者我在上面的步骤中犯了任何错误.如果我错了,请告诉我.
更新我的静态库以进行支持需要进行哪些更改 64Bit architecture
注意:
我要求我自己创建的库更新.我没有使用第三方库. 更新
我lipo -info testingLibImport/libLibNSlog.a
在终端中使用了这个命令,输出是:
Architectures in the fat file: testingLibImport/libLibNSlog.a are: armv7 armv7s i386 arm64
Run Code Online (Sandbox Code Playgroud)
dwx*_*wxw 14
我在XCode 6.4中找到的另一个解决方案是添加ONLY_ACTIVE_ARCH = NO并且不指定体系结构.所以
xcodebuild -target TargetName ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphonesimulator BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
Run Code Online (Sandbox Code Playgroud)
将在您的库中构建i386和x86_64体系结构.
这是我用于构建所有体系结构的完整通用lib运行脚本.
# define output folder environment variable
UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal
# Step 1. Build Device and Simulator versions
xcodebuild -target TargetName ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
xcodebuild -target TargetName ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphonesimulator BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
# make sure the output directory exists
mkdir -p "${UNIVERSAL_OUTPUTFOLDER}"
# Step 2. Create universal binary file using lipo
lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}.a"
# Last touch. copy the header files. Just for convenience
cp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/include" "${UNIVERSAL_OUTPUTFOLDER}/"
Run Code Online (Sandbox Code Playgroud)
Dee*_*ger 10
昨天我也遇到了同样的问题,经过大量的谷歌搜索和尝试不同的解决方案,我放弃了自己的尝试.从我提供的不同解决方案中我可以理解的是,当我运行"lipo -info library.a"时,它不是为x86_64架构而构建的.所以,决定放弃聚合方法并做了一个简单的尝试.
lipo命令:lipo -create -output newlibraryname.a simulatorlibraryname.a devicelibraryname.a
集成了新创建的通用静态库,它工作了!
经过很多事情我得到了解决方案.一些xcode不知道有自动出现,Standard architectures (including 64-bit) (armv7,armv7s,arm64)
但在我的情况下,我的静态库项目没有选项.所以我要手动添加这个: -
并选择此选项: -
在此之后,我重新构建我的静态库,并在我的项目中使用,现在工作正常.我还检查了lipo命令到终端输出到现在不同: -
testingLibImport/libLibNSlog.a是:armv7 armv7s i386 x86_64 arm64
归档时间: |
|
查看次数: |
18003 次 |
最近记录: |