我正在构建一个精灵目标。我有一个链接器脚本,我在其中输入一些符号位置,例如(这些符号在不同的位置定义,例如下面提供地址的 ROM),
A = 0x12345678;
B = 0x1234567c;
D = 0x1234568c;
在 C 代码中,我可以使用这些变量 A 和 B,而无需声明它们,这是预期的。
我想知道是否可以覆盖符号 D,即我当前的可执行文件可以有自己的 D 声明。在这种情况下,链接器应该忽略 D。有没有办法将链接器脚本中的符号声明为“弱”?以便链接器仅当未在任何链接对象中声明时才可以使用“输入符号”。
Use PROVIDE
指示
PROVIDE(D = 0x1234568c);
From ld
文档 http://docs.adacore.com/live/wave/binutils-stable/html/ld/ld.html#PROVIDE
在某些情况下,仅当符号被引用并且未被链接中包含的任何对象定义时,链接描述文件才需要定义该符号。
……
另一方面,如果程序定义了……链接器将默默地使用程序中的定义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)