Я пытаюсь построить libx264.a работать на моем iphone 4s (под управлением IOS 6.1.3)ссылка ошибка Xcode libx264.a ARM
Я строю его, используя терминальное приложение MacOSX 10.9:
CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang ./configure
--host=arm-apple-darwin
--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk
--prefix=armv7
--extra-cflags='-no-integrated-as -arch armv7'
--extra-ldflags="-L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/usr/lib/system -arch armv7"
--enable-pic --enable-static
Какой guives мне выход:
platform: ARM
system: MACOSX
cli: yes
libx264: internal
shared: no
static: yes
asm: yes
interlaced: yes
avs: avxsynth
lavf: no
ffms: no
mp4: no
gpl: yes
thread: posix
opencl: yes
filters: crop select_every
debug: no
gprof: no
strip: no
PIC: yes
bit depth: 8
chroma format: all
Тогда я бегу 'сделать', и это создает архив libx264.a.
До сих пор так хорошо.
На моей Xcode (версия 5.0.2 (5A3005)) Приложение I набор:
1) Построить Настройки -> Header Search Path -> x264 родительский каталог (../x264)
2) Построить Фаз -> Link Library с Binaries -> Добавить Другое ... (../x264/libx264.a)
3) построить Настройки -> Другие флаги компоновщика: -ObjC
В моей AppDelegate.mm:
#import "AppDelegate.h"
#import "x264.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
x264_param_t x264param;
x264_param_default(&x264param);
// Override point for customization after application launch.
return YES;
}
...
Когда я пытаюсь чтобы запустить его на устройстве, я получаю ошибку:
Undefined symbols for architecture armv7:
"x264_param_default(x264_param_t*)", referenced from:
-[AppDelegate application:didFinishLaunchingWithOptions:] in AppDelegate.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1
(use -v to see invocation)
Здесь команда вызывается с помощью Xcode:
Ld /Users/danieldantas/Library/Developer/Xcode/DerivedData/testingCpp-bvawshyhjcybwvadwwwjqxuomjts/Build/Products/Debug-iphoneos/testingCpp.app/testingCpp normal armv7
cd /Users/danieldantas/Desktop/projects/testingCpp
setenv IPHONEOS_DEPLOYMENT_TARGET 6.0
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch armv7 -isysroot
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk
-L/Users/danieldantas/Library/Developer/Xcode/DerivedData/testingCpp-bvawshyhjcybwvadwwwjqxuomjts/Build/Products/Debug-iphoneos
-L/Users/danieldantas/Desktop/projects/testingCpp -L/Users/danieldantas/Desktop/projects/x264
-F/Users/danieldantas/Library/Developer/Xcode/DerivedData/testingCpp-bvawshyhjcybwvadwwwjqxuomjts/Build/Products/Debug-iphoneos
-filelist /Users/danieldantas/Library/Developer/Xcode/DerivedData/testingCpp-bvawshyhjcybwvadwwwjqxuomjts/Build/Intermediates/testingCpp.build/Debug-iphoneos/testingCpp.build/Objects-normal/armv7/testingCpp.LinkFileList
-dead_strip -ObjC -stdlib=libc++ -fobjc-arc -fobjc-link-runtime -miphoneos-version-min=6.0 -lx264 -framework CoreGraphics -framework UIKit -framework Foundation -Xlinker -dependency_info -Xlinker
/Users/danieldantas/Library/Developer/Xcode/DerivedData/testingCpp-bvawshyhjcybwvadwwwjqxuomjts/Build/Intermediates/testingCpp.build/Debug-iphoneos/testingCpp.build/Objects-normal/armv7/testingCpp_dependency_info.dat -o
/Users/danieldantas/Library/Developer/Xcode/DerivedData/testingCpp-bvawshyhjcybwvadwwwjqxuomjts/Build/Products/Debug-iphoneos/testingCpp.app/testingCpp
Любая идея, как это исправить?
Благодаря
Можете ли вы запустить 'lipo -info' в созданной библиотеке? Похоже, что он не собирался для ARMv7. –
lipo -info libx264.a входной файл libx264.a не является жирным файлом Нежирный файл: libx264.a is architecture: armv7 – user1558688
Если вы запустите 'nm {library} | grep param_default', он появляется? Вполне возможно, что конфигурация, которую вы используете, не позволяет использовать эту функцию. –