链接描述文件中断程序
Linker Script Breaks Program
我有一个程序使用 __attribute__ ((".sdh_ble_observers"))
和 extern mytype * ___start_sdh_ble_observers
.
将一些结构放置在命名部分中
我正在使用以下 linker 脚本
SECTIONS
{
.sdh_ble_observers :
{
PROVIDE(___start_sdh_ble_observers = .);
KEEP(*(SORT(.sdh_ble_observers*)))
PROVIDE(___stop_sdh_ble_observers = .);
}
}
INSERT AFTER .data;
当我使用 g++ link 应用程序使用 linker 脚本的 -T 标志时,可执行文件变得不可执行 cannot execute binary file: Exec format error
。
当我删除代码中的外部声明并且不在 g++ 中使用 -T 标志时,可执行文件运行正常。
这可能是什么原因造成的?平台为cygwin.
我刚刚找到问题的答案。
向 .sdh_ble_observers : ALIGN(0x1000)
部分添加对齐语句就成功了。
我有一个程序使用 __attribute__ ((".sdh_ble_observers"))
和 extern mytype * ___start_sdh_ble_observers
.
我正在使用以下 linker 脚本
SECTIONS
{
.sdh_ble_observers :
{
PROVIDE(___start_sdh_ble_observers = .);
KEEP(*(SORT(.sdh_ble_observers*)))
PROVIDE(___stop_sdh_ble_observers = .);
}
}
INSERT AFTER .data;
当我使用 g++ link 应用程序使用 linker 脚本的 -T 标志时,可执行文件变得不可执行 cannot execute binary file: Exec format error
。
当我删除代码中的外部声明并且不在 g++ 中使用 -T 标志时,可执行文件运行正常。
这可能是什么原因造成的?平台为cygwin.
我刚刚找到问题的答案。
向 .sdh_ble_observers : ALIGN(0x1000)
部分添加对齐语句就成功了。