Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在ubuntu';s C/C++;包括用于gvim的目录?_C++_C_Linux_Ubuntu_Vim - Fatal编程技术网

C++ 如何在ubuntu';s C/C++;包括用于gvim的目录?

C++ 如何在ubuntu';s C/C++;包括用于gvim的目录?,c++,c,linux,ubuntu,vim,C++,C,Linux,Ubuntu,Vim,我在Windows7中使用GVIM7.4和TDM-GCC64。 我知道这个编译器的include目录, 并将路径适当地添加到gvim的标记搜索路径中。 窗户里一切都很好 但我是ubuntu新手,我目前安装了ubuntu 13.10(俏皮), 但是对编译器的include目录有点困惑 我发现其中一些目录是: /usr/include /usr/src /usr/local/include /usr/include /usr/lib/gcc/i686-linux-gnu/4.8 /usr/lib/g

我在Windows7中使用GVIM7.4和TDM-GCC64。 我知道这个编译器的include目录, 并将路径适当地添加到gvim的标记搜索路径中。 窗户里一切都很好

但我是ubuntu新手,我目前安装了ubuntu 13.10(俏皮), 但是对编译器的include目录有点困惑

我发现其中一些目录是:

/usr/include
/usr/src
/usr/local/include
/usr/include
/usr/lib/gcc/i686-linux-gnu/4.8
/usr/lib/gcc/x86_64-linux-gnu/4.8/include
最后,我创建了一个shell脚本,如下所示:

#!/bin/sh
cd /usr/include
sudo ctags -R --c-kinds=+pxfvtcdeglmnsu --c++-kinds=+pxfvtcdeglmnsu --languages=C,C++ --langmap=C:.c.h --langmap=C++:.C.h.c.cpp.hpp.c++.cc.cp.cxx.h++.hh.hp.hxx --fields=+iaSm --extra=+qf -f tags *
cd /usr/src
sudo ctags -R --c-kinds=+pxfvtcdeglmnsu --c++-kinds=+pxfvtcdeglmnsu --languages=C,C++ --langmap=C:.c.h --langmap=C++:.C.h.c.cpp.hpp.c++.cc.cp.cxx.h++.hh.hp.hxx --fields=+iaSm --extra=+qf -f tags *
cd /usr/local/include
sudo ctags -R --c-kinds=+pxfvtcdeglmnsu --c++-kinds=+pxfvtcdeglmnsu --languages=C,C++ --langmap=C:.c.h --langmap=C++:.C.h.c.cpp.hpp.c++.cc.cp.cxx.h++.hh.hp.hxx --fields=+iaSm --extra=+qf -f tags *
cd /usr/include
sudo ctags -R --c-kinds=+pxfvtcdeglmnsu --c++-kinds=+pxfvtcdeglmnsu --languages=C,C++ --langmap=C:.c.h --langmap=C++:.C.h.c.cpp.hpp.c++.cc.cp.cxx.h++.hh.hp.hxx --fields=+iaSm --extra=+qf -f tags *
cd /usr/lib/gcc/i686-linux-gnu/4.8
sudo ctags -R --c-kinds=+pxfvtcdeglmnsu --c++-kinds=+pxfvtcdeglmnsu --languages=C,C++ --langmap=C:.c.h --langmap=C++:.C.h.c.cpp.hpp.c++.cc.cp.cxx.h++.hh.hp.hxx --fields=+iaSm --extra=+qf -f tags *
cd /usr/lib/gcc/x86_64-linux-gnu/4.8/include
sudo ctags -R --c-kinds=+pxfvtcdeglmnsu --c++-kinds=+pxfvtcdeglmnsu --languages=C,C++ --langmap=C:.c.h --langmap=C++:.C.h.c.cpp.hpp.c++.cc.cp.cxx.h++.hh.hp.hxx --fields=+iaSm --extra=+qf -f tags *
但是这个脚本正在生成一个巨大的标签文件, 因此,vim在搜索函数、变量、结构、, 原型等。 当我按下“”或Tab键时(我已将omni完成配置为Tab键), vim冻结了一段时间,然后提出了我正在寻找的内容

最后,我决定放弃递归(-R)选项,但我的问题是:

1) ubuntu中的实际包含目录是什么

2) 我应该在哪里使用递归,在哪里不使用递归

3) 通常不需要许多目录,例如“/usr/src/”或“/usr/src/nvidia-331.38” 它主要包含Linux头文件和NVIDIA驱动程序函数。 这些目录是什么类型的,以便我可以将其作为最后一个选项列在我的.vimrc中

我正在寻找一个解决方案,以找到一切(函数,变量,结构),而不必减慢vim


提前感谢。

我建议将/usr/include和/usr/local/include递归地作为头的最基本路径

<>在大多数UNIX类系统(包括Linux和FreeBSD分发)中,/UR/INEP是找到C和C++库头的最基本的地方。 系统管理员通常(但并非总是)会在/usr/local中安装其他软件,这通常(但并非总是)意味着添加的库将位于/usr/local/lib中,它们的C/C++头将位于/usr/local/include中

在某些类Unix系统上,可选软件安装在/opt而不是/usr/local中


通常在开源类Unix系统上,/usr/src将包含操作系统的源代码和头文件,包括内核和“用户区”(即用户可能从命令行使用的命令)。通常,除非您开发的应用程序应该与操作系统紧密集成,或者实际上是操作系统的一部分,否则您不需要/usr/src路径中的头文件(但不在/usr/include中)。

我认为“一切”和“慢下来”都是相同结果的一部分;也就是说,如果不减慢Vim,就不可能拥有一切。因此,我认为您需要在某种程度上定义要使用的库,并仅为这些库的头生成标记。然后,请向我推荐标准C/C++头的最基本要求。此时,这对我来说已经足够了。/usr/local/include在我的情况下为空。仅/usr/include文件夹中的标记就有47.65MB,但我认为这是正常的。谢谢。C++特定的头通常在一个子目录下面/Ur/IORE,而/UR/IORD和其他子目录包含C接口头。由于C++经常使用C库,所以有可用的是很好的。但您可能希望查看/usr/include下面是否有多个版本的C++标题,并找到一种避免标记所有标题的方法。也许您的系统在/usr/include下还添加了其他库头。我刚刚标记了我的整个/usr/include,大约10 MB。你能告诉我当我通过ubuntu软件中心安装它们时,GNU科学库、BOOST、PDCurses、yxml11、tiny xml、zlib、glut等库头在哪里吗?我手边没有ubuntu系统,而且我已经用了好几年了,但是我很确定这些软件包把它们的头文件放在/usr/include下。在ubuntu的gnome终端上键入“manhier”,显示了一种类似UNIX的目录结构,我们在很久以前的学校时代就已经学习过这种结构。然而,它非常有用。非常感谢你。