【发布时间】:2016-11-09 10:23:10
【问题描述】:
这是关于 GNU 链接器的。
我有一个(假设是)变量名为myVar。现在我希望我的变量被放置在内存中的某个地址。
我使用的编译器有一个 __attribute__ ((blablabla)) 可以解决问题。但是我决定使用链接器脚本。
从现在开始,我设法将变量放在链接描述文件中的某个地址,就像这样:
myVar = 0xDEAD;
它确实有效。问题是链接器很愚蠢,偶尔会在我的地址上部署其他变量。两者在某种程度上都像是在union 中。
我认为我需要以某种方式告诉链接器这个长度的地址已被占用,不应该被触及。
无论如何,我想你明白了。有什么帮助吗?
【问题讨论】:
-
此类比喻通常用于操作系统中的外围模块或裸机嵌入式代码。它们的正确位置是在带有宏的标题中。在链接器文件中,它们占用的地址空间不适用于常规变量。所以,你的基本系统设计有问题。请参阅How to Ask 并提供minimal reproducible example。
-
正则变量是什么意思?
-
由编译器和链接器管理的变量,而不是您的绝对地址。