gpt4 book ai didi

Worklight、wikitude 和 sqlcipher 框架的 iOS 模拟器构建错误

转载 作者:行者123 更新时间:2023-11-29 10:40:43 24 4
gpt4 key购买 nike

我正在使用 worklight,一个名为 wikitude 的增强现实插件和一个名为 sqlcipher 的框架。虽然我在为设备或存档构建时在 iOS 上运行良好,但当我尝试为模拟器构建时,会出现一个我从未见过的警告,然后是大量重复的符号错误:

ld: warning: tentative definition of '_OPENSSL_ia32cap_P' with size 8 from '/Users/mine/apps/wl/iphone/native/Frameworks/sqlcipher.framework/sqlcipher(cryptlib.o)'
is being replaced by real definition of smaller size 4 from '/Users/mine/apps/wl/iphone/native/libWikitudeSDK.a(cryptlib.o)'

然后这个错误(截断):

duplicate symbol _CRYPTO_THREADID_cmp in:
/Users/mine/apps/wl/iphone/native/Frameworks/sqlcipher.framework/sqlcipher(cryptlib.o)
/Users/mine/apps/wl/iphone/native/libWikitudeSDK.a(cryptlib.o)
.
.
.
duplicate symbol _OpenSSLDie in:
/Users/mine/apps/wl/iphone/native/Frameworks/sqlcipher.framework/sqlcipher(cryptlib.o)
/Users/mine/apps/wl/iphone/native/libWikitudeSDK.a(cryptlib.o)
ld: 33 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Wikitude 通过 libWikitudeSDK.a 包含在项目中,并处于与库构建阶段的链接,而 sqlcipher 是在同一位置添加的 .framework。我的其他链接器标志设置为 -ObjC,因为当我们使用 -all_load 时,它在 wikitudeSDK 和 worklightSDK 之间引起了上面相同的重复符号问题。

我已按照 this blog 中的说明进行操作关于如何避免重复错误,但虽然它解决了 cryptlib.o 的一个问题,但它只是打开了数百个新的重复符号错误。我在构建新库时也尝试了 lipo -arch_blank i386,但这只会导致架构 i386 错误的 undefined symbol 。

需要说明的是,我并不是要在模拟器中运行增强现实组件,我只是想使用模拟器来开发我的应用程序的其他方面,这些方面不依赖于 wikitude。

虽然暂时从项目中删除 wikitude 是一种选择,但项目中的版本控制只会让所有相关人员头疼,并引入额外的不必要的复杂性。

提前感谢您的任何见解。

最佳答案

我没有看到您使用的是哪个版本的 Worklight,但我认为它是 6.2 之前的版本。在 Worklight 6.2 中,-all_load 标志已替换为特定库的一系列 -force_load 标志。

您可以尝试对特定库使用 -force_load 而不是 -all_load。 Worklight 6.1 的技术说明描述了如何执行此操作:Xcode linker options requirement to use FIPS 140-2 with IBM Worklight .由于您没有使用 FIPS 140-2 可选功能,因此您不会为 libfipshttp.a 添加 -force_load;您将为 libCordova.a 和 libWorklightStaticLibProject.a 添加一个 -force_load 并删除 -all_load ,如所述。请注意,如果在链接时出现 undefined symbol ,您可能必须为正在使用的其他库添加 -force_load。

作为引用,这里是描述 Worklight 6.2 中 ios: Changes in Xcode linker options 部分下更改的链接

关于Worklight、wikitude 和 sqlcipher 框架的 iOS 模拟器构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24687330/

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