我尝试在 .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”吗?
谢谢,西米斯。