嵌入式软件工程师&&太极拳
全部博文(548)
分类: LINUX
2011-02-20 19:58:21
链接脚步
arm-linux-ld --verbose //默认链接脚本
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm","elf32-littlearm");
若有命令行选项-EB, 则使用第 2 个 BFD 格式; 若有命令行选项-EL,则使用第 3 个
BFD 格式.否则默认选第一个 BFD 格式.
OUTPUT_ARCH(arm);
一句话,照抄......因为我们没有修改的余地,都是系统默认的关键字。第一句
指示系统可以有生成两种格式,默认是 elf32-arm,端格式是 little endian。
ENTRY("_start");
程序第一条执行的指令,如果不写,默认是.text段的第一条指令;
一个标准的lds模板:
--------------------------- xxx.lds ------------------------------
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm");
OUTPUT_ARCH("arm");
ENTRY("_start");
SECTIONS
{
. = 0x30000000;
.text : {
*(.text);
}
. = ALIGN(4);
.data : {
*(.data);
}
. = ALIGN(4);
.bss : {
*(.bss);
}
}
--------------------------- end ------------------------------
4. 对齐问题
注意对齐问题:
段内对齐,.align 2
段间对齐,. = ALIGN(4);