C++ 使用grep命令.hpp文件获得匹配的二进制文件
在应用程序中,我试图看到C++文件或它们的头文件包含/使用包含目录中的特定.HPP文件,我得到所有二进制文件*.o匹配。在编译那些“a.cpp”、“b.cpp”、“c.cpp”和“d.cpp”文件时,我将这个X.hpp文件路径包含在“-I…”中。如果这就是原因,那么当我搜索另一个Y.hpp驻留在同一包含路径中时,它还应该显示我使用相同“-I…”编译的所有二进制文件(a.o、b.o、c.o和d.o),但情况并非如此,请参见下面的示例。有人能告诉我发生了什么事吗 比如说-C++ 使用grep命令.hpp文件获得匹配的二进制文件,c++,shell,unix,C++,Shell,Unix,在应用程序中,我试图看到C++文件或它们的头文件包含/使用包含目录中的特定.HPP文件,我得到所有二进制文件*.o匹配。在编译那些“a.cpp”、“b.cpp”、“c.cpp”和“d.cpp”文件时,我将这个X.hpp文件路径包含在“-I…”中。如果这就是原因,那么当我搜索另一个Y.hpp驻留在同一包含路径中时,它还应该显示我使用相同“-I…”编译的所有二进制文件(a.o、b.o、c.o和d.o),但情况并非如此,请参见下面的示例。有人能告诉我发生了什么事吗 比如说- $grep "X.hpp"
$grep "X.hpp" *.*
Binary file a.o matches
Binary file b.o matches
Binary file c.o matches
Binary file d.o matches
$grep "Y.hpp" *.*
Binary file a.o matches
Binary file b.o matches
Binary file d.o matches
谢谢 这只是对象文件中的调试符号信息,将代码区域/变量值映射到源代码。这是预期的,也是调试所必需的
strip*.o
可以删除文件的这些部分。或者,您可以指定grep-I
忽略二进制文件。非常感谢您的澄清。