它是关于GNU Linker。如何通过链接器脚本在特定地址放置符号?
我有一个(让我们说)变量名为myVar
。现在我想将我的变量放在内存中的某个地址处。
我使用的编译器有一个__attribute__ ((blablabla))
这个技巧。不过,我决定使用链接器脚本。
因为现在我总算变量存放在特定的地址与链接脚本就像这样:
myVar = 0xDEAD;
而且它的实际工作。问题在于链接器很愚蠢,偶尔会在我的地址上部署其他变量。在某种程度上,他们的行为就像是在union
。
我认为,不知何故,我需要告诉链接器,这个地址与这个长度已被占用,不应该被触及。
无论如何,我想你明白了。任何帮助?
这种paraibles通常用于在OS或裸周边模块 - 金属嵌入代码。对于他们来说正确的地方是在一个包含宏的头文件中。在链接器文件中,它们占用的地址空间不适用于常规变量。所以,你的基本系统设计出了问题。看[问]并提供[mcve]。 – Olaf
你是什么意思的常规变量? – Hairi
由编译器和链接器管理的变量,而不是绝对地址。 – Olaf