C++ - 从 G++ 切换到 Xcode(和 clang)

标签 c++ ios xcode clang

我正在尝试使用 sample program对于 gloox 库(一个用于 C++ 的 XMPP 客户端库),我最终会集成到(以及其他)iOS 应用程序中。实现这一目标的一个明显(但令人沮丧的困难)步骤是在 Xcode 中使用 C++ 代码(通常使用 clang 编译器)。

我如何使用 G++ 进行编译:

g++ -o bot bot.cpp -lgloox -lpthread

我在 Xcode 中尝试过的:

在我的目标build设置下:

  • 转到 Other C++ Flags 并添加了 -lpthread-lgloox,因此理论上所需的库已链接。
  • 转到 Header Search Paths 并添加 /usr/include/usr/local/include,两者都设置为 recursive . gloox header 位于 /usr/local/include 中,因此理论上该 header 应该可用。

但是,当我去编译这个可憎的东西时,我得到了这些错误:

enter image description here

有人可以帮我理解这些吗?

编辑:我已经在互联网上广泛搜索了这个,但无济于事。

最佳答案

您需要从库搜索路径中删除 /usr/include。默认情况下它已包含在内,第二次尝试添加它可能会导致它最终覆盖编译器提供的某些 header ,从而导致不幸的结果。


The link errors you got when you did this看起来 gloox 库在链接时没有被使用,所以现在失败了。 这是进步! — 如果您进入链接阶段,编译现在就可以正常进行了。

转到您的项目设置(单击左侧栏顶部的项目名称),转到“构建阶段”选项卡,打开“将二进制文件与库链接”阶段,然后单击 + 按钮。然后找到libgloox.dylib(大概在/usr/local/lib)并添加。

关于C++ - 从 G++ 切换到 Xcode(和 clang),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20811311/

相关文章:

iphone - 在单元格中有 UITextView 的情况下无法选择 UITable 单元格

ios - 我们可以在 Swift 中使结构中的 Codable 键不区分大小写吗

objective-c - 在 Interface Builder 中为通用应用程序创建单个 .xib? (iOS)

swift - 奇怪的编译器错误 : 'expectation' produces 'XCTestExpectation' , 不是预期的上下文结果类型 'XCTestExpectation'

objective-c - 从未调用过 UITextView 委托(delegate)

c++ - Caffe C++保存网络caffemodel文件

c++ - 处理 MPI 应用程序中的信号/正常退出

iphone - 静态方法 objective-c - 初始化一次

c++ - "new Classname*[]"是什么意思?

c++ - boost::绑定(bind)访问器?