如何防止动态重定位(rela.dyn)?

时间:2009-09-01 12:50:14

标签: c dynamic embedded operating-system relocation

我试图在没有任何操作系统的powerpc嵌入式系统上运行一个简单的程序。我使用GNU编译器 - 链接器工具和PSIM作为模拟器。我编写了自己非常简单的链接器指令文件。

我在静态库中使用了一个全局变量,并希望在我的示例程序中使用该变量。但是,虽然链接示例程序GNU ld会出错并停止。它说它在链接器指令文件中找不到rela.dyn。实际上我不想使用动态可重定位库,因为我没有动态加载器。我做错了什么?

2 个答案:

答案 0 :(得分:1)

没有更多信息很难说。如果您没有底层操作系统,您是否使用-ffreestanding来避免在平台运行时链接?

编辑: -ffreestanding需要-shared? -ffreestanding意味着编译到非托管环境。这样的环境如何支持共享库?

答案 1 :(得分:0)

正如Solar所说的那样,不过如此。如果失败,请使用--verbose选项运行ld以确切地查看它尝试链接的内容:这将使您能够进一步调试。