找到 g++ 使用的 STL 标头的路径

Locate the path of STL headers used by g++

本文关键字:路径 STL 找到 g++      更新时间:2023-10-16

我需要在std::vector<T>的调试版本中查找一些内容,但我不记得标头的实际位置。这是在Windows上的MSYS下,这很棘手,因为您有/include/mingw/include/mingw/mingw32/include/usr/include,但我仍然找不到它们...

我知道一种方法,那就是编写这样的文件:

#include <vector>
int main() {
    return 0;
}

然后

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

我们发现它在这里:/mingw/lib/gcc/mingw32/4.8.1/include/c++/vector

但是有没有更快的方法?我们可以在不使用这个技巧的情况下问g++吗?

您可以使用以下命令显示完整的搜索路径

g++ -print-search-dirs

或者,您可以找到一个特定的标头,而无需编写带有类似以下内容的源文件

echo '#include <vector>' | g++ -x c++ -E - | grep '/vector"'