【问题标题】:clang complete add path to includes铿锵的完整添加路径包括
【发布时间】:2015-01-07 07:57:27
【问题描述】:

我今天有一个简单的问题。我正在使用这个 vim 配置 - https://github.com/gergap/vim

问题在于 clang 完成。它可以工作,但是当我想添加更多包含以获得更好的完成时,什么都没有发生 - 它不会检测到新的标题。

例如获取#include <sys/types.h>。这是我添加到 .clang_complete 文件中的内容,该文件位于我的 main.c 所在的目录中:

-I/usr/include/x86_64-linux-gnu/sys/

我通过调用找到的

find /usr/include/ -name types.h

有什么问题吗?你能告诉我一些包含到 unix 头文件的工作 .clang_complete 文件吗?也许我会以这种方式发现问题。

这是带有 -v 标志的 gcc 的输出:

 /usr/lib/gcc/x86_64-linux-gnu/4.8/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include

【问题讨论】:

  • <>"" 中的路径附加到您传递给编译器的每个包含目录。所以如果你不想要<sys/types.h>,编译器会检查/usr/include/x86_64-linux-gnu/sys/sys/types.h 是否存在。尝试使用-I/usr/include/x86_64-linux-gnu/
  • @xaizek 说清楚。我需要用 clang 编译我的程序以使其工作吗?还是在我添加新路径后只编译一次?
  • 你不需要编译任何东西来使它工作,但我建议在向.clang_complete 添加新行之后重新启动 Vim,以确保它被重新加载(至少这次)。我提到编译器作为完成处理参数的方式与编译器相同,所以只需将-I/usr/include/x86_64-linux-gnu/ 放入您的.clang_complete,重新启动 Vim,它应该可以工作。

标签: vim clang-complete


【解决方案1】:

要进行调查,请使用 -v 选项运行 gcc(或 clang)。这将显示编译时使用的搜索路径。在我的系统(FreeBSD)上,没有-I 选项的简单编译打印

#include "..." search starts here:
#include <...> search starts here:
 /usr/include/clang/3.4.1
 /usr/include
End of search list.

这应该让您知道要将哪些目录添加到.clang_complete重要:顺序很重要!

【讨论】:

  • 我已经用 gcc -v 的输出编辑了我的问题,但我仍然不知道这与我将 /usr/include/x86_64-linux-gnu/sys/ 路径添加到 clang 完成的问题有什么关系:)
猜你喜欢
  • 2012-02-25
  • 2020-07-11
  • 2012-06-09
  • 2013-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多