我尝试在.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。
答案 0 :(得分:0)
您是否正在尝试写入该变量?也许在集会?它是只读数据,并且可能是链接器脚本已将其放在文本部分中 - 因此您无法写入它。