汇编指令.extern在uclibc-gcc中使用

时间:2014-09-04 09:40:34

标签: assembly arm extern uclinux

我尝试在.S程序中使用.c文件中定义的变量。

在.c文件中:

const int var = 10;

在.S文件中:

    .extern var
LDR lr, _VAR
_VAR: .word var

可以编译。但是在执行时,会出现错误消息“无法修改应用程序的文本部分;使用GCC选项-fPIE用于与位置无关的可执行文件。”

交叉编译工具是arm-v7-linux-uclibceabi-gcc。目标是ARM cortex R4。

不能像这样使用“.extern”吗?

谢谢, Simmis。

1 个答案:

答案 0 :(得分:0)

您是否正在尝试写入该变量?也许在集会?它是只读数据,并且可能是链接器脚本已将其放在文本部分中 - 因此您无法写入它。