为什么GCC似乎总是将源文件名填入elf对象?
其次,如何在编译时停止它?
当我想构建一个树外的内核模块时,我的构建目录被填充到内核对象中。我想不出任何原因(除了调试跟踪)为什么gcc总是将源文件名/文件路径粘贴到elf对象中。
示例:
/* test_this_is_a_dumb_string_that_gcc_keeps_adding.c */
int func(void)
{
int a = 1;
return 0;
}
然后建立:
arm-linux-gcc -c -o test.o test_this_is_a_dumb_string_that_gcc_keeps_adding.c
arm-linux-ld -r test.o -o test.ko
然后在xxd中看到字符串:
xxd -g 1 test.ko