无法使用 make 命令创建 iOS 静态库 .a 文件

Posted

技术标签:

【中文标题】无法使用 make 命令创建 iOS 静态库 .a 文件【英文标题】:Unable to create iOS static library .a file using make command 【发布时间】:2016-02-26 06:54:41 【问题描述】:

我的 Makefile 如下,它给出了错误:

没有指定目标,也没有找到任何生成文件。停下来。

XBUILD=/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild
PROJECT_ROOT=/Users/AshrafMac/Desktop/iosSDK/
PROJECT=$(PROJECT_ROOT)/InfColorPicker.xcodeproj
TARGET=/Users/AshrafMac/Desktop/iOSSDK/

all: libInfColorPickerSDK.a

libInfColorPicker-i386.a:
    $(XBUILD) -project $(PROJECT) -target $(TARGET) -sdk iphonesimulator -configuration Release clean build
    -mv $(PROJECT_ROOT)/build/Release-iphonesimulator/lib$(TARGET).a $@

libInfColorPicker-armv7.a:
    $(XBUILD) -project $(PROJECT) -target $(TARGET) -sdk iphoneos -arch armv7 -configuration Release clean build
    -mv $(PROJECT_ROOT)/build/Release-iphoneos/lib$(TARGET).a $@

libInfColorPickerSDK.a: libInfColorPicker-i386.a libInfColorPicker-armv7.a
    xcrun -sdk iphoneos lipo -create -output $@ $^

clean:
    -rm -f *.a *.dll

无法使用 make 命令创建 ios 静态库 .a 文件。

【问题讨论】:

【参考方案1】:

xcodebuild -project 'MyProject.xcodeproj' -configuration 'Release' -sdk 'iphoneos9.3' 清理构建 ARCHS='armv7 armv7s' IPHONEOS_DEPLOYMENT_TARGET='5.0' TARGET_BUILD_DIR='./build-arm' BUILT_PRODUCTS_DIR='./build-arm'

xcodebuild -project 'MyProject.xcodeproj' -configuration 'Release' -sdk 'iphoneos9.3' 清理构建 ARCHS='arm64' IPHONEOS_DEPLOYMENT_TARGET='6.0' TARGET_BUILD_DIR='./build-arm64' BUILT_PRODUCTS_DIR='./build-arm64'

xcodebuild -project 'MyProject.xcodeproj' -configuration 'Release' -sdk 'iphonesimulator9.3' 清理构建 ARCHS='i386' IPHONEOS_DEPLOYMENT_TARGET='5.0' TARGET_BUILD_DIR='./build-i386' BUILT_PRODUCTS_DIR='./build-i386'

xcodebuild -project 'MyProject.xcodeproj' -configuration 'Release' -sdk 'iphonesimulator9.3' 清理构建 ARCHS='x86_64' VALID_ARCHS='x86_64' IPHONEOS_DEPLOYMENT_TARGET='6.0' TARGET_BUILD_DIR='./build-x86_64' BUILT_PRODUCTS_DIR='./build-x86_64'

lipo -create './build-arm/MyProject.a' './build-arm64/MyProject.a' './build-i386/MyProject.a' './build-x86_64/MyProject.a' -输出'Mylibrary.a'

执行上述代码在TERMINAL中。 在上面的代码中,MyProject.xcodeproj 应该替换为您的 Xcode 项目名称,iphoneos9.3 应该替换为您的 Xcode 支持的最大部署目标(例如,我正在使用Xcode 7.3.1 和它支持的最大部署是 9.3 参见:YourProject >> target >>> General Tab)

【讨论】:

嘿 @Ashraf 使用此链接 https://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/walkthrough/#Installing_the_Xcode_Command_Line_Tools 我无法在我的 xcode 中获取 make 文件。我在哪里可以得到那个 make 文件。?

以上是关于无法使用 make 命令创建 iOS 静态库 .a 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何创建静态库,并且可以在ios中的任何项目上添加.a文件

iOS-静态库的创建与使用

iOS-静态库,动态库,framework浅析

当我链接动态库而不是静态库时,CMake 有效

IOS静态库

转载我使用过的Linux命令之ar - 创建静态库.a文件