[体系结构arm64的J2ObjC未定义符号

问题描述 投票:0回答:1

我正在尝试使用j2objc将Java库转换为Objective-c,并将生成的objc文件包含到我的XCode项目中。我设法生成了objc文件,但是XCode给了我以下错误:https://i.stack.imgur.com/QX3zF.png

我在.o文件上使用lipo -info,得到了这个[[“体系结构:x86_64”]。这是否意味着这些objc文件不是要在arm64体系结构上运行,如果可以,该如何解决?我可以使用任何标志为arm64生成文件吗?

先前的错误是

“ ARC禁止显式消息”

,我通过向与该错误相关的所有编译源中添加编译器标志-fno-objc-arc来解决此问题。此解决方案安全吗?
objective-c xcode architecture arm64 j2objc
1个回答
0
投票
要为arm64进行编译,需要-arch arm64-isysroot IPHONE_SDK_DIRECTORY标志。要在您的系统上找到IPHONE_SDK_DIRECTORY,请运行xcrun -sdk iphoneos --show-sdk-path

没有关于J2ObjC的特定内容,它们是正常的iOS标志,您可以在Xcode中成功编译Objective C文件的日志中找到它们,然后单击其右键以展开并显示所有使用的标志。

J2ObjC默认情况下不会生成ARC代码,因此-fno-objc-arc标志可以。如果您更喜欢ARC,请运行带有-use-arc标志的j2objc。但是,请勿使用-fno-objc-arc编译这些生成的文件,因为当您的应用程序完成处理后,这些对象将不会被释放。

© www.soinside.com 2019 - 2024. All rights reserved.