【问题标题】:compile libc++ for ios?为ios编译libc++?
【发布时间】:2014-08-17 11:03:26
【问题描述】:

我想在我的 ios 应用中使用 libclang 来突出显示语法。

我已经为 ios (armv7) 交叉编译了 clang,我可以将它用于标记化、诊断等。但是当我尝试标记化/获取具有 #include <stdio.h> 或 @ 的 .cpp 文件的诊断信息时987654325@ 或 cstdio.h libclang 输出找不到头文件的致命诊断。

我是否必须交叉编译libc++,将交叉编译的头文件和静态库上传到设备并根据-I 添加到 libclang 命令行参数?

【问题讨论】:

  • 我想配置armv7的头文件应该足够了,因为你不需要链接
  • 我遇到标题搜索错误,所以它似乎需要它们的路径。我可以将头文件从 iOS SDK 文件夹复制到 iOS 设备并添加 -I 吗?
  • 使用-I 应该可以。您还可以配置您的编译器,以便默认包含搜索路径,但我不知道该怎么做。
  • 我已将标头从 libcxx/include 复制到设备并添加 -I 和标头路径。现在对于使用 #include <iostream> 的文件,我遇到了下一个错误输出的 clang 崩溃:Assertion failed: (Capacity - Index == TypeLoc::getFullDataSizeForType(T) && "incorrect data size provided to CreateTypeSourceInfo!"), function pushImpl, file /Users/asmirnov/Documents/dev/src/llvm_34_ios/tools/clang/lib/Sema/TypeLocBuilder.cpp, line 133.
  • 来自 libcxx 包含文件夹 (llvm.org/svn/llvm-project/libcxx/trunk/include/cstdio) 的 BTW cstdio 头文件具有 #include <stdio.h>(第 100 行),并且 libcxx 头文件夹中没有 stdio.h 文件。这是误导,我得到 libclang 诊断 - 致命错误

标签: ios clang libstdc++ libc++


【解决方案1】:

iOS 上已经存在 libc++。您无需执行任何特殊操作即可访问它。只需在 iOS SDK 中链接 /usr/lib/libc++.dylib。

【讨论】:

    猜你喜欢
    • 2010-11-25
    • 2021-04-11
    • 2012-05-08
    • 2013-10-27
    • 2011-09-22
    • 2016-05-24
    • 2012-10-19
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多