Question

I want to set up separate ctags databases for various libraries in /usr/include/ for use with OmniCppComplete.

The idea is to be able to pull in only the libraries needed for a particular project in the target language - C or C++.

For example, I'd like to have one database for the standard C libraries, one for system libraries that might be used by either C or C++ programs ( sockets / networking comes to mind ) one for the standard C++ libs / STL / Boost, and then other databases for various third party libraries such as QT or glib. Then I could pull something in simply by typing set tags+= ~/.vim/somelib.tags in vim.

I assume that everything related to the C++ stdlib and STL are in the /usr/include/c++ and that Boost is all in /usr/include/boost. Unfortunately it seems that the standard C libs and system libs are just kind of dumped directly into /usr/include/ with a variety of other stuff.

How can I get a list of which files and directories belong to which libs? I'm on Ubuntu 8.04.

Was it helpful?

Solution

apt-file is your friend on Ubuntu.

The following command will give you a list of all include files for Boost:

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

I'll leave the rest as an exercise for the reader!

Update: For completeness, call apt-file update if you have never used apt-file before.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top