【问题标题】:Does Poco work with LLVM standard C++ library?Poco 是否适用于 LLVM 标准 C++ 库?
【发布时间】:2013-01-25 04:35:03
【问题描述】:

C++ 目前不是我的主要语言之一——仍在学习中。 . . (所以对我放轻松)。 .

我正在 iOS 上设置 Poco。 . .当我链接到 Gnu C++ 标准库时它可以工作,但是当链接到 LLVM 标准库时,我得到了一堆错误 - 无法找到 std::string。 . .

它是否适用于 llvm 标准库?

它是否适用于 C++11(有趣的问题,但不是那么重要,因为我也对针对 Android 和使用 Poco 进行线程处理感兴趣)。

【问题讨论】:

  • 尝试减少问题:移除 Poco,然后尝试使用 std::string 运行一个简单的应用程序。关于 LLVM 对不同 C++ 风格(89/11)的支持,我会查看文档。顺便说一句:C++11 有一个 std::thread 类,这将使 Poco 的那部分变得不必要。
  • @doomster 谢谢,我会试试的。 . .关于 C++11 线程:Android 还是不行!
  • @doomster 结果:std::string 对 llvm C++ 或 GNU C++ lib 都足够满意(在任何一种情况下都使用 clang 编译),但 Poco 只对 Gnu C++ lib 满意。 . .实际上,方言 98 vs 11 对它影响不大。 . .这是标准库。

标签: c++ poco-libraries


【解决方案1】:

我们已经构建了适用于 iOS 和 Android 的静态库:使用提供的 Android 平台说明 here

对代码的少量编辑应该可以使 poco 使用 stlport_static 工作。但使用 gnustl_static 开箱即用。

iOS 静态库在 Xcode 中开箱即用,使用:c-dialect:GNU99、c++-dialect GNU++11、C++-library libc++ 和 LLVM 4.2 编译器。

GCC_C_LANGUAGE_STANDARD = gnu99
CLANG_CXX_LANGUAGE_STANDARD = gnu++0x
CLANG_CXX_LIBRARY = libc++

(如果您拥有的 stl-library 版本与 Poco 中使用的 std:: 命名空间不同,则可能需要在 poco 的 1.51 版上为 iOSAndroid 进行一次微小的编辑)。

【讨论】:

    【解决方案2】:

    取决于您使用的版本,1.5.1 版本应该可以工作(请参阅https://github.com/pocoproject/poco/issues/46)。我不认为该修复程序被向后移植到 1.4.x

    【讨论】:

      【解决方案3】:

      由于没有其他答案,根据cmets的建议来回答:

      截至 2013 年 1 月,它将适用于 C++11 方言,但它似乎不喜欢 llvm 标准库。 . Gnu 标准库工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-28
        • 2023-03-22
        • 2010-11-13
        • 2015-02-04
        • 2015-05-13
        • 2021-10-27
        • 2011-01-30
        相关资源
        最近更新 更多