c++ - 为 C/C++ 标准库、boost 和第三方库设置单独的 ctags 数据库

标签 c++ c linux vim ctags

我想为 /usr/include/ 中的各种库设置单独的 ctags 数据库,以便与 OmniCppComplete 一起使用.

我们的想法是能够仅引入目标语言(C 或 C++)中特定项目所需的库。

例如,我想要一个用于标准 C 库的数据库,一个用于可能被 C 或 C++ 程序(想到套接字/网络)使用的系统库,一个用于标准 C++ 库/STL/boost,然后是QT或者glib等各种第三方库的其他数据库。然后我可以简单地通过在 vim 中输入 set tags+= ~/.vim/somelib.tags 来拉入一些东西。

我假设与 C++ stdlib 和 STL 相关的所有内容都在 /usr/include/c++ 中,而 Boost 都在 /usr/include/boost 中。不幸的是,标准 C 库和系统库似乎只是与其他各种东西一起直接转储到 /usr/include/ 中。

如何获得哪些文件和目录属于哪些库的列表?我在 Ubuntu 8.04 上。

最佳答案

apt-file是你在 Ubuntu 上的 friend 。

以下命令将为您提供 Boost 的所有包含文件的列表:

apt-file list -x "^libboost" | grep '/include/' | cut -f2 -d:

我会把剩下的留给读者作为练习!

更新:为了完整起见,如果您之前从未使用过apt-file,请调用apt-file update

关于c++ - 为 C/C++ 标准库、boost 和第三方库设置单独的 ctags 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2824952/

相关文章:

c++ - 如何在 Linux 平台上使用 C++ 中的 gTest 检测内存泄漏

linux - VS2017 在 Linux Remote 上调试我的共享库

c++ - 在新线程中创建对话框

c++ - std::swap() 可以安全地用于对象吗?

c - 将 4x4 键盘矩阵与 Atmega32 连接

c - 如何在C中读取csv的特定列

c++ - 用户定义的构造函数重载与参数父类(super class)的重载参数不匹配

c++ - 完全特化类模板的函数模板的显式特化

c++ - 如何在 Windows Phone 8.1 中通过蓝牙连接发送字符

linux - 查找和替换函数而不修改参数/变量