【问题标题】:How can I import compiled C++ libraries into an Objective-C++ project in Xcode 4?如何将已编译的 C++ 库导入 Xcode 4 中的 Objective-C++ 项目?
【发布时间】:2011-08-05 06:39:42
【问题描述】:

我正在尝试使用 SkypeKit SDK 使用 Xcode 4 创建一个 Objective-C++ 项目。我有两个从 SkypeKit 编译的库 libskypekit_cyassl_lib.a 和 libskypekit_cppwrapper_2_lib.a,我需要能够使用它们以便访问 Skype API。

我在“链接框架和库”下的两个 .a 文件中都添加了,并将 -all_load -ObjC -lstdc++ 添加到“其他链接器标志”中,并且构建正常,但是一旦我尝试使用那些库,构建失败。

任何帮助将不胜感激,谢谢!

【问题讨论】:

    标签: linker static-libraries objective-c++ skype


    【解决方案1】:

    您可以从 Objective-C++ 调用 C++ 代码,这意味着您的文件应该具有 .mm 扩展名而不是 .m

    我认为这可能是问题所在,但由于您没有指定您得到的错误,这只是一个猜测。具体来说,如果您从 .m 文件调用 C++ 代码,则会出现编译错误。

    另一个可能的原因是忘记导入库的头文件。要成功导入,您还必须将标头所在的目录添加到项目“标头搜索路径”中。

    如果这没有帮助,请发布错误消息。

    【讨论】:

    • 我正在使用 .mm 文件,谢谢。在 SkypeKit API 的 C++ 文档中,有:#include "skype-embedded_2.h" #include "keypair.h" 包括这些行会导致 'file://...: error: Lexical or Preprocessor Issue: 'skype-embedded_2.h' file not found' 如果我不这样做'不包括这些头文件,我会收到关于期望类型或类型无效的错误消息,尽管我使用的唯一类型是 API 中最基本的类型。
    • 您应该尝试将这些文件所在的目录添加到您的项目标头搜索路径中。该消息说找不到它们,因此将修复它。
    • 你能找出skype_embedded_2.h的位置并将其添加到搜索路径吗?有什么改进吗?
    • 不,它还没有构建。可能是时候睡一觉了,稍后再看看;)无论如何感谢您的帮助@sergio :)
    • 所以显然再试一次就行了。不知道我做了什么不同,但谢谢:)
    猜你喜欢
    • 2012-02-12
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多