Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.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
C++ 与Worklight静态库的符号冲突_C++_Ios_Ibm Mobilefirst_Static Libraries_Dependency Management - Fatal编程技术网

C++ 与Worklight静态库的符号冲突

C++ 与Worklight静态库的符号冲突,c++,ios,ibm-mobilefirst,static-libraries,dependency-management,C++,Ios,Ibm Mobilefirst,Static Libraries,Dependency Management,我使用混合应用程序的Worklight。为了扩展iOS功能,我尝试添加一个静态库。结果,我从链接器中得到一个关于符号冲突的错误newLib与libWorklightStaticLibProject 在将库包含在项目中之前,我尝试添加具有重新定义方法名称的头文件: 例如,对于方法\u OBJC\u CLASS\u$\u KeychainItemWrapper,我添加了 #define _OBJC_CLASS_$_KeychainItemWrapper PREFIX_OBJC_CLASS_$_Key

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

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

例如,对于方法
\u OBJC\u CLASS\u$\u KeychainItemWrapper
,我添加了

#define _OBJC_CLASS_$_KeychainItemWrapper PREFIX_OBJC_CLASS_$_KeychainItemWrapper
#include "newLib/header.h"
#undef _OBJC_CLASS_$_KeychainItemWrapper
我还尝试更改.o文件的符号,但我无法将已编辑的.o文件合并到单个静态库中

部分链接器错误


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

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

有些事情可以尝试:

  • 使用
    -所有荷载
    -强制荷载

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

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

  • 还有一些用于删除重复符号的教程,例如:


  • 提及您尝试使用的第三方库,以及Worklight版本和内部版本号。我尝试使用库RtPKCS11ECP-crypto extension在蓝牙令牌上进行数字签名。Worklight的版本是6.2.0.01.20141120-1827它是否有我们可以从中下载的官方网站?当然,您可以从中获得它。我还有一个带有冲突的.o文件列表(通过Xcode链接器)。谢谢你,伊丹。这不是通用的解决方案,但在我的情况下,它是有效的。我认为,这个问题可以追溯到以后更新后。
    ...
    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)
    ...