链接错误 Xcode libx264.a ARM

     2023-03-08     98

关键词:

【中文标题】链接错误 Xcode libx264.a ARM【英文标题】:link error Xcode libx264.a ARM 【发布时间】:2013-11-19 17:20:47 【问题描述】:

我正在尝试构建 libx264.a 以在我的 iphone 4s(运行 iOS 6.1.3)上运行

我正在使用 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

这给了我输出:

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

然后我运行“make”,它会生成一个 libx264.a 存档。

到目前为止,一切都很好。

在我设置的 Xcode(版本 5.0.2 (5A3005))应用程序上:

1) 构建设置 -> 标头搜索路径 -> x264 父目录 (../x264 ) 2) 构建阶段 -> 使用二进制文件链接库 -> 添加其他... ( ../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 是架构:armv7 如果你运行nm library | grep param_default,它会出现吗?您的配置完全有可能不允许使用该功能。 nm libx264.a | grep x264_param_default 00000000 T _x264_param_default 000002c0 T _x264_param_default_preset 【参考方案1】:

刚刚找到解决办法:

问题在于 import 语句周围缺少 extern "C"

固定版本:

#import "AppDelegate.h"
extern "C" 
    #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;

【讨论】:

pjsip链接错误Xcode 5

】pjsip链接错误Xcode5【英文标题】:pjsiplinkerrorXcode5【发布时间】:2014-02-1915:20:47【问题描述】:我正在尝试在Xcode5中为iOS7构建pjsip。我已经执行了在http://trac.pjsip.org/repos/wiki/Getting-Started/iPhone.当我在Xcode中构建时,它给出了以下... 查看详情

Xcode 中的构建错误。链接有问题

】Xcode中的构建错误。链接有问题【英文标题】:BuilderrorinXcode.Problemwithlinking【发布时间】:2019-07-2409:28:07【问题描述】:我从统一构建游戏然后打开.workspace文件我尝试在iPhone上构建我的项目中有Facebook和firebase分析,还有谷歌... 查看详情

将 libxml2 添加到 Xcode 错误

...关于此的问题,但没有解决方案对我有用。我试过“其他链接器标志”=-lxml2我试过“搜索头文件”=$(SDKROOT)/usr/include/libxml2我试过“搜索头文件”=$(SDK_DIR)/usr/include/libx 查看详情

Xcode 12 Apple M1 arm64 - 可设计错误:“错误的架构”

】Xcode12AppleM1arm64-可设计错误:“错误的架构”【英文标题】:Xcode12AppleM1arm64-Designableerror:"wrongarchitecture"【发布时间】:2020-12-1407:57:22【问题描述】:在基于AppleSilicon的机器上使用Interfacebuilder时,我当前的项目会引发IBDe... 查看详情

Xcode 8.0 更新后架构 arm64 的重复符号

...?又该如何解决?我试图从“OtherLinkerFlags”部分删除-ObjC链接器标志,在导入.m而不是.h后检查,将“NoCommonBl 查看详情

FFmpeg libavcodec.a Xcode 链接器问题 - 架构 arm64 的未定义符号

】FFmpeglibavcodec.aXcode链接器问题-架构arm64的未定义符号【英文标题】:FFmpeglibavcodec.aXcodelinkerissues-Undefinedsymbolsforarchitecturearm64【发布时间】:2016-06-0906:51:21【问题描述】:我已经使用这个脚本为iOS构建了FFmpeg:https://github.com/kewlbe... 查看详情

仅在使用设备 arm_neon.h 时 Xcode6 编译错误

】仅在使用设备arm_neon.h时Xcode6编译错误【英文标题】:Xcode6Compileerroronlywhenusingdevicearm_neon.h【发布时间】:2014-11-2803:02:40【问题描述】:我们最近刚刚更新到Xcode6,我们在arm_neon.h中有很多错误,我们正在使用glkit框架来构建我们... 查看详情

UIFoundation 2 片架构 arm64 错误 Xcode 7.3

】UIFoundation2片架构arm64错误Xcode7.3【英文标题】:UIFoundation2slicesforarchitecturearm64errorXcode7.3【发布时间】:2016-04-1412:59:55【问题描述】:我收到以下错误ld:警告:找不到选项的目录\'-L/Avijit/Dogra/App/EZMCOM_LATEST5.31.56PM/EZMCOM_LATEST/Conne... 查看详情

带有 M1 芯片的 Macmini 的 Xcode 抛出 arm64 架构错误

】带有M1芯片的Macmini的Xcode抛出arm64架构错误【英文标题】:Xcodethrowingarm64architectureerrorforMacminiwithM1chip【发布时间】:2021-05-2108:36:51【问题描述】:我在使用带有M1芯片的AppleNewMacmini的XCode中遇到了一些问题。在我的应用程序中,... 查看详情

如何在 Xcode 中链接 fftw3? (苹果电脑)

】如何在Xcode中链接fftw3?(苹果电脑)【英文标题】:Howtolinkfftw3inXcode?(Mac)【发布时间】:2014-04-2811:23:03【问题描述】:我在(HowdoIlinkthirdpartylibrarieslikefftw3andsndfiletoaniPhoneprojectinXcode?)上遵循了脚本但我得到了一个错误。首先通... 查看详情

使用 Xcode 7 提交应用程序:错误 ITMS-90533 缺少架构。扩展包需要“arm64”的 UIRequiredDeviceCapabilities 值

】使用Xcode7提交应用程序:错误ITMS-90533缺少架构。扩展包需要“arm64”的UIRequiredDeviceCapabilities值【英文标题】:SubmittingAppwithXcode7:ERRORITMS-90533MissingArchitecture.ExtensionBundlerequiresaUIRequiredDeviceCapabilitiesvalueof"arm64"【发布 查看详情

链接器错误 Xcode 5

】链接器错误Xcode5【英文标题】:linkererrorXcode5【发布时间】:2014-01-0105:04:37【问题描述】:无法理解错误。duplicatesymbol_currentCountin:/Users/selim/Library/Developer/Xcode/DerivedData/iXEN-aimjepotqgbjmlaghqjovwpsngvx/Build/Intermediates/iXEN.build/ 查看详情

XCode - 架构 armv7 arm64 的未定义符号

...SDK是通过拖放到项目中安装的,但之后在构建时出现以下错误:注意:我在提到arm64时遇到了一个错误,但这个 查看详情

奇怪的 Xcode 链接器错误

】奇怪的Xcode链接器错误【英文标题】:WeirdXcodelinkererror【发布时间】:2014-05-0701:04:28【问题描述】:我收到了这个Xcode错误:ld:warning:directorynotfoundforoption\'-L/Volumes/MacintoshHD2/Users/dgd/Dropbox/Websites/iCalTools.com/CalendarFilter/iCal\'ld:warn 查看详情

Xcode 存档链接器错误 dlib

】Xcode存档链接器错误dlib【英文标题】:Xcodearchivelinkererrordlib【发布时间】:2018-01-0913:47:24【问题描述】:在Xcode中归档项目时出现此错误。ld:bitcodebundlecouldnotbegeneratedbecause\'/project/Pods/dlib/build/libdlib.dylib\'wasbuiltwithoutfullbitcode.Allf... 查看详情

构建 libetpan 项目期间的 ARM64 构建错误

】构建libetpan项目期间的ARM64构建错误【英文标题】:ARM64builderrorduringbuildinglibetpanproject【发布时间】:2014-04-1706:18:06【问题描述】:在为iOS-ARM64构建libetpan时,我已经在libetpanformac项目的准备脚本中添加了日志记录功能。Xcode失败... 查看详情

Appstore 提交期间 Xcode 中出现错误 ITMS-90203

...ore提交过程中出现如下错误:我仔细检查了所有目标以及链接的pod和子项目都有我什至试过lipo-info<my_binary>,它说arm64armv7armv7 查看详情

如何解决“错误:找不到 libx264”?

】如何解决“错误:找不到libx264”?【英文标题】:Howtoresolve"ERROR:libx264notfound"?【发布时间】:2014-09-2414:14:07【问题描述】:我需要安装支持libx264的ffmpeg以启用H.264编码。我使用以下脚本成功安装了libx264,并使用了androi... 查看详情