如何防止动态重定位(rela.dyn)?
问题描述:
我想无需任何操作系统运行的PowerPC嵌入式系统的一个简单的程序。我正在使用GNU编译器 - 链接器工具和PSIM作为模拟器。我写了自己非常简单的链接器指令文件。如何防止动态重定位(rela.dyn)?
我用一个全局变量在我的静态库,并希望使用该变量在我的示例程序。但是,链接示例程序GNU ld会给出错误并停止。它说它在链接器指令文件中找不到rela.dyn。其实我不想使用动态可重定位库,因为我没有动态加载器。我究竟做错了什么?
答
很难说没有更多的信息。如果您没有底层操作系统,您是否使用“ - ”来避免在平台运行时链接?
编辑: -ffreestanding需要-shared? - 用于编译到非托管环境的便捷手段。这样的环境如何支持共享库?
答
-ffreestanding,太阳说。如果失败,请使用--verbose选项运行ld以查看它正在尝试链接的内容:这将使您能够进一步调试。
我用-nostartfiles -nodefaultlibs -nostdlib -static标志,同时连接。 - 不需要共享标志,这是不适合我的应用程序 – 2009-09-03 12:53:27