4

通过运行,strings我注意到我的g++ 4.7.3编译器生成的目标代码(没有打开调试标志)包含源代码单元中使用的所有头文件的绝对路径。对目标代码执行 astrip -s不会删除这些字符串。为什么它们首先包含在目标代码中?其次,如何从目标代码中删除它们?

4

1 回答 1

2

文件名和路径通常来自命令行,因此如果使用绝对路径编译文件,它将显示在二进制文件中。您需要修改编译源文件的方式,可能会更改构建系统。改变:

g++ -I/home/frey/mylib/include /home/frey/foo.cpp -o foo

cd /home/frey
g++ -Imylib/include foo.cpp -o foo
于 2013-04-16T18:08:52.723 回答