c++ - 找到 g++ 使用的 STL header 的路径

标签 c++ gcc stl g++ msys

我需要在 std::vector<T> 的调试版本中查找一些东西,我不记得 header 的实际位置。这是在 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"'

关于c++ - 找到 g++ 使用的 STL header 的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21110693/

相关文章:

c++ - 如何将任意大小的位集传递给函数?

c++ - g++中的线程?

c++ - std::unordered_map 析构函数不释放内存?

c++ - 如何在 for_each 中组合函数和谓词?

C++ 编译器优化丢弃模板特化

c++ - 更新 std::map 中键的值

mysql - 每次用 mysql.h 编译时,我都需要笨拙的 gcc 选项吗?

linux - GNU Radio,debian 编译错误

c++ - 指针数据交换 vector 和队列 : deep and shallow copies

c++ - 允许使用右值的地址吗?