我想無需任何操作系統運行的PowerPC嵌入式系統的一個簡單的程序。我正在使用GNU編譯器 - 鏈接器工具和PSIM作爲模擬器。我寫了自己非常簡單的鏈接器指令文件。如何防止動態重定位(rela.dyn)?
我用一個全局變量在我的靜態庫,並希望使用該變量在我的示例程序。但是,鏈接示例程序GNU ld會給出錯誤並停止。它說它在鏈接器指令文件中找不到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