由于缺乏使用 GCC 和 ld 的知识,我正在寻求专业人士的帮助。我正在为教育目的编写操作系统,并且在编译和链接 C 代码时遇到问题。老实说,这没有任何问题,但我对 GCC 和 LD 生成的输出文件中的不必要数据感到困惑,比如
GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 symtab..strtab..shstrtab..text..eh_frame..data..comment
.ELF..|
等等。我真的需要知道哪些参数同时用于 gcc 和 ld 以减少这种无用的(对于我的操作系统)数据
我之前使用的参数: -c -nostdlib -nostdinc -fno-builtin -fno-stack-protector -fstrength-reduce -finline-functions 我也使用链接描述文件来组织段。
我尝试使用 objcopy 来减少输出中的 .comment 和 .note 等块,对我来说这是最好的解决方案
objcopy -R .note -R .comment -S -O binary kernel.o kernel.bin