如何在使用GCC编译的C文件中指定输出节?

时间:2011-01-21 07:42:15

标签: c gcc ld

在汇编语言中,我使用.section指令告诉汇编程序输出到哪个部分,例如

.section init

有没有办法在C文件中执行相同的操作。我希望某些文件的代码进入不同的部分,以便我可以将其加载到不同的内存地址。我知道我可以为ld创建一个脚本并在那里指定部分,但我不想这样做。是否有一些编译器开关或.section指令类型的C文件将执行此操作?

1 个答案:

答案 0 :(得分:16)

有:

__attribute__((section("section_name")))

所以,例如:

void foo() __attribute__((section(".text_foo")));

....

void foo() {}

foo放在.text_foo

有关详细信息,请参阅here