c++ - 使用 grep 命令一个 .hpp 文件获得匹配的二进制文件

标签 c++ shell unix

在一个应用程序中,我试图查看哪些 C++ 文件或它们的头文件包含/使用 include 目录中的特定 .hpp 文件,我得到了所有二进制文件 *.o 匹配。在编译那些“a.cpp”、“b.cpp”、“c.cpp”和“d.cpp”文件时,我已经将这个 X.hpp 文件路径包含在“-I ...”中。如果那是原因,那么当我搜索另一个位于相同包含路径中的 Y.hpp 时,它还应该显示我用相同的“-I .. ”,但事实并非如此,请参见下面的示例。谁能告诉我发生了什么事?

例如-

$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 来忽略二进制文件。

关于c++ - 使用 grep 命令一个 .hpp 文件获得匹配的二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23770039/

相关文章:

php - CakePHP 将共享代码放在哪里?

shell - 在 shell 脚本中使用 tshark 过滤器中的变量

php - n次后如何中止wget

c++ - 如何重新创建树,其中序遍历存储在文件中

c++ - 用 C++ 或 C 语言打印 fibo 大数字

c++ - 将 std::array 推送到 std::stack

regex - awk gensub() 不匹配正则表达式

C++ 从模板函数中存储数据?

regex - Bash 将正则表达式值添加到数组中

macos - 文件名 Unix 上的时间戳