我正在使用Mingw gcc和ld生成Windows可执行文件。我想访问C代码中某个部分的起始地址,但是我尝试了很多方法,但是没有人可以使用。
我的链接脚本文件具有此:
.data BLOCK(__section_alignment__) :
{
__data_start__ = . ;
*(.data)
*(.data2)
*(SORT(.data$*))
KEEP(*(.jcr))
__data_end__ = . ;
*(.data_cygwin_nocopy)
}
在C代码中,我这样做:
extern char __data_start__;
uint32_t test = &__data_start__;
并得到此错误:对__data_start__
的未定义引用
有人可以帮我吗?谢谢
我正在使用Mingw gcc和ld生成Windows可执行文件。我想访问C代码中某个部分的起始地址,但是我尝试了很多方法,但是没有人可以使用。我的链接器...
mingw32使用前导下划线,即编译器将为每个符号添加_
(下划线)。您显示的链接器描述文件的一部分是默认链接器脚本的一部分(至少在我的安装中),并且对于您的代码,我得到[]的错误提示
int main()
{
extern char __data_start__;
return (int) &__data_start__;
}