gpt4 book ai didi

objective-c - 使用 Xcode 9 编译框架

转载 作者:行者123 更新时间:2023-11-28 14:29:06 25 4
gpt4 key购买 nike

当我使用 Xcode 8 编译框架并在新项目中导入后,它成功构建并且我能够测试它。但是当我用 Xcode 9 编译框架,然后在新项目中添加构建的框架时,我得到了:

Undefined symbols for architecture arm64:
"___llvm_profile_runtime", referenced from:
___llvm_profile_runtime_user in xxxxxxxxx(DMCService.o)
___llvm_profile_runtime_user in xxxxxxxx(APXUserInterfacePresentor.o)
___llvm_profile_runtime_user in xxxxxxxxx(APXDevice.o)
___llvm_profile_runtime_user in xxxxxxxxx(APXInboxService.o)
___llvm_profile_runtime_user in xxxxxxxxx(AppoxeeManager.o)
___llvm_profile_runtime_user in xxxxxxxxx(APXApplicationSession.o)
___llvm_profile_runtime_user in xxxxxxxxx(APXInbox.o)
...
(maybe you meant: ___llvm_profile_runtime_user)
ld: symbol(s) not found for architecture arm64

我用 -lipo -info 架构检查构建的框架,它有 arm64。只有当我为真实设备构建框架时才会发生这种情况,如果我为模拟器构建它,它就可以正常工作。所以我不明白为什么它不起作用?

在此先感谢您的帮助。

最佳答案

可能您的框架构建配置将“启用代码覆盖率支持”(底层设置名称为 CLANG_ENABLE_CODE_COVERAGE)设置为 YES,而在您包含该框架的应用程序中,相同的设置设置为 NO。为什么这会导致 undefined symbol 错误:启用该设置会导致对检测函数的调用被注入(inject)到框架代码中。但是在构建应用程序时,没有链接定义这些函数的库。因此链接器 (ld) 失败。

再试一次,将“启用代码覆盖支持”设置为“否”来构建框架。

此外,为避免此类配置不匹配错误,您可能希望同时构建应用程序和框架,而不是分别预先构建框架。为此,您可以将框架项目作为应用项目的子项目,或者创建一个同时包含应用项目和框架项目的 Xcode 工作区。

关于objective-c - 使用 Xcode 9 编译框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51360784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com