我想閱讀一些關於可執行文件的編譯鏈接加載過程的文本。 我發現的一般網絡文本並不像我想的那麼詳細。鏈接器和加載程序參考
並且不......我確信一本關於編譯器&鏈接器等的書會太多。我想了解一些常識,特別是如何在實踐中進行。
任何參考將不勝感激...我敢肯定有一些博客有關於此的優秀文章。
我想閱讀一些關於可執行文件的編譯鏈接加載過程的文本。 我發現的一般網絡文本並不像我想的那麼詳細。鏈接器和加載程序參考
並且不......我確信一本關於編譯器&鏈接器等的書會太多。我想了解一些常識,特別是如何在實踐中進行。
任何參考將不勝感激...我敢肯定有一些博客有關於此的優秀文章。
對於Linux上的庫和可執行文件,Ulrich Drepper的paper非常好。
只有很少的編程語言實現使用鏈接器和加載器。
我不知道你怎麼能進入更深層次的細節,而不需要暫時打開鏈接器和編譯器。
在C語言實現中,編譯器輸出目標文件。鏈接器是一個單獨的程序,它接收目標文件並輸出可執行文件。此外,加載程序是加載可執行文件的單獨程序。
一些編譯器可以直接調用鏈接器。
很少有編譯器實現只輸出彙編文件,這些彙編文件被進一步組裝並鏈接。
這裏沒有太多內容。
我曾讀過_anywhere_的最佳解釋就是在這裏:http://stackoverflow.com/questions/510309/the-compilation-process/510379#510379 :-) – paxdiablo 2010-07-20 03:20:25