Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Locate the path of STL headers used by g++

Tags:

c++

gcc

g++

stl

msys

I need to look something up in the debug version of std::vector<T>, and I can't remember where the headers actually are. This is under MSYS on Windows, where this is tricky, because you have /include, /mingw/include, /mingw/mingw32/include, /usr/include, and I still can't find them...

I know one way, that is to write a file like this:

#include <vector>

int main() {
    return 0;
}

Then

$ g++ -E temp.cpp | grep vector

And we find that it's here: /mingw/lib/gcc/mingw32/4.8.1/include/c++/vector

But is there a faster way? Can we ask g++ without using this trick?

like image 927
Evgeni Sergeev Avatar asked Jan 14 '14 10:01

Evgeni Sergeev


1 Answers

You can display the full search paths with

g++ -print-search-dirs

or you can find a specific header without writing a source file with something along the lines of

echo '#include <vector>' | g++ -x c++ -E - | grep '/vector"'
like image 110
Mike Seymour Avatar answered Sep 24 '22 04:09

Mike Seymour