Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios j2objc作为XCode中的子项目_Ios_Objective C_Xcode_Macos - Fatal编程技术网

Ios j2objc作为XCode中的子项目

Ios j2objc作为XCode中的子项目,ios,objective-c,xcode,macos,Ios,Objective C,Xcode,Macos,我在将库作为子项目链接时遇到问题。它总是以“缺少libjre_emul.a”错误结束 我已采取的步骤: 1) 创建空iOS项目 2) 按照“将JreEmulation项目包含到项目中”部分中的说明,包括j2objc库 我检查了我正在为iPhone模拟器构建,并且构建过程正在运行。libjre_emul.a似乎是在j2objc/jre_emul/build_result/中生成的,但它应该也在DerivedData中可用,而不是。我还尝试过为DerivedData设置共享文件夹(文件->项目设置-

我在将库作为子项目链接时遇到问题。它总是以“缺少libjre_emul.a”错误结束

我已采取的步骤:

1) 创建空iOS项目

2) 按照“将JreEmulation项目包含到项目中”部分中的说明,包括j2objc库

我检查了我正在为iPhone模拟器构建,并且构建过程正在运行。libjre_emul.a似乎是在j2objc/jre_emul/build_result/中生成的,但它应该也在DerivedData中可用,而不是。我还尝试过为DerivedData设置共享文件夹(文件->项目设置->派生数据->高级),但这没有帮助

我希望将其作为子项目包含的原因是能够在j2objc源代码中设置断点

以下是错误:

Ld/Users/user/Library/Developer/Xcode/DerivedData/Build/Products/Debug iphonesimulator/SubProject4.app/SubProject4 normal i386 cd/用户/用户/文档/项目1/子项目4 setenv IPHONEOS_部署_目标6.1 setenv PATH“/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/sbin:/sbin” /Applications/Xcode.app/Contents/Developer/toolschains/XcodeDefault.xctoolchain/usr/bin/clang-arch i386-isysroot/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk-L/Users/user/Library/Developer/Xcode/DerivedData/Build/Products/Debug iPhoneSimulator-F/Users/user/Library/dev/Xcode/DerivedData/Build/Products/Debug iphonesimulator-filelist/Users/user/Library/Developer/Xcode/DerivedData/Build/Intermediates/SubProject4.Build/Objects-normal/i386/SubProject4.LinkFileList-Xlinker-objc_-abi_版本-Xlinker 2-objc-fobjc-fobjc-arc-fobjc-fobjc-link-runtime-Xlinker-no_-dylibs-mios-sim一个框架版本MIN=6.1 /用户/库/开发者/ XDCOD/BuffDeDATION/Bug /Debug IPHONITIMULATOR/LBJREYEMUL.A框架UIKIT-FraseFrase-框架核心图形-O/Sub/Audio/Buffy/Deave/XCOD/Debug数据/构建/产品/调试IPHONSIMULIDER /子项目4.APP/子项目4/P> clang:错误:没有这样的文件或目录:'/Users/user/Library/Developer/Xcode/DerivedData/Build/Products/Debug iphonesimulator/libjre_emul.a'

汤姆·鲍尔回答道:

问题似乎是JreEmulation项目的makefile没有将生成的库复制到Xcode预期的位置。Xcode用于将生成环境变量(如builded_PRODUCTS_DIR)传递给外部生成系统目标,但不再如此。在我找到如何正确修复嵌入JreEmulation之前,这里有一个解决方法(如果有人有解决方案,请回复):

  • 从项目的“带库的链接二进制文件”列表中删除红色libjre_emul.a

  • 在该列表中,单击+按钮,然后添加其他

  • 转到j2objc目录,然后dist/lib并添加libjre_emul.a

现在,当您查看链接列表时,libjre_emul.a在清理项目(因为它已被删除)后应为红色,在项目成功构建后应为黑色

所以这是一个bug,但我仍然无法调试/逐步进入j2objc源代码。但至少这是可行的