gpt4 book ai didi

c++ - 与 Worklight 静态库的符号冲突

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

我将 Worklight 用于混合应用程序。为了扩展 iOS 功能,我尝试添加一个静态库。结果,我从链接器中收到关于 newLiblibWorklightStaticLibProject 的符号冲突的错误。

在项目中包含库之前,我尝试添加带有重新定义方法名称的头文件:

例如,对于方法 _OBJC_CLASS_$_KeychainItemWrapper 我添加了

#define _OBJC_CLASS_$_KeychainItemWrapper PREFIX_OBJC_CLASS_$_KeychainItemWrapper
#include "newLib/header.h"
#undef _OBJC_CLASS_$_KeychainItemWrapper

我也曾尝试更改 .o 文件的符号,但我无法将编辑后的 ​​.o 文件合并到一个静态库中

部分链接器错误。

...
duplicate symbol _OBJC_CLASS_$_KeychainItemWrapper in:
[project_folder]/iphone/native/Classes/newLib.framework/newLib(KeychainItemWrapper.o)
[project_folder]/iphone/native/WorklightSDK/libWorklightStaticLibProject.a(KeychainItemWrapper.o)
duplicate symbol _OBJC_IVAR_$_KeychainItemWrapper.genericPasswordQuery in:
[project_folder]/iphone/native/Classes/newLib.framework/newLib(KeychainItemWrapper.o)
[project_folder]/iphone/native/WorklightSDK/libWorklightStaticLibProject.a(KeychainItemWrapper.o)
duplicate symbol _OBJC_IVAR_$_KeychainItemWrapper.keychainItemData in:
[project_folder]/iphone/native/Classes/newLib.framework/newLib(KeychainItemWrapper.o)
[project_folder]/iphone/native/WorklightSDK/libWorklightStaticLibProject.a(KeychainItemWrapper.o)
duplicate symbol _OBJC_METACLASS_$_KeychainItemWrapper in:
[project_folder]/iphone/native/Classes/newLib.framework/newLib(KeychainItemWrapper.o)
[project_folder]/iphone/native/WorklightSDK/libWorklightStaticLibProject.a(KeychainItemWrapper.o)
duplicate symbol _OBJC_CLASS_$_Reader in:
[project_folder]/iphone/native/Classes/newLib.framework/newLib(Reader.o)
[project_folder]/iphone/native/WorklightSDK/libWorklightStaticLibProject.a(Reader.o)
...

请帮我解决这个问题。如何使用与 Worklight 库具有相同依赖关系的第 3 方库?

最佳答案

在 libWorklightStaticLib.a 和 sqlcipher.framework 中确实有一些这样的符号。这很好。问题是这个库也在尝试添加这些。

一些尝试:

  1. 使用-all_load-force_load:

    • -all_load 添加到链接器调用。链接器标志将告诉链接器加载所有存档的所有目标文件,无论是否使用任何符号。

    • -force_load 添加到链接器调用中,包括存档路径。此标志的工作方式与 -all_load 完全相同,但仅适用于指定的存档。您可以在这里阅读更多相关信息:https://stackoverflow.com/a/22264650/186909

  2. 还有去除重复符号的教程,例如:

关于c++ - 与 Worklight 静态库的符号冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27158835/

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