簡體   English   中英

將共享庫編譯成程序?

[英]Compile shared library into a program?

我編寫了一個程序,它使用安裝在我系統上的共享庫。 這個庫很少安裝在其他系統上。 我如何編譯我的程序以便庫不需要安裝在其他系統上? 我有可用的庫的源代碼。 最好的方法是什么?

其他系統當然具有相同的架構和操作系統。

將其編譯為靜態庫並將其鏈接到可執行文件中。

盡管 OP 通過回答不同的問題解決了他的問題,但(至少)有兩種方法可以將共享庫插入二進制文件中,以防萬一

  • 沒有可用的源代碼
  • 沒有可用的編譯器(或構建鏈)
  • 靜態鏈接不起作用或不明顯怎么辦
  • 保留內存布局 - 靜態鏈接會改變它並可能“喚醒”隱藏的錯誤
  • 對於“永久鏈接”LD_PRELOAD 庫到可執行文件

第一個是 statifier(開源但僅限於 x86 和 x86_64 並且只有目標代碼)

我所知道的第二個是魔法貂(由同一位開發人員)。 它是封閉源代碼,但開發人員對開源項目很友好,並且 ermine 具有支持更多平台的優勢以及能夠在其虛擬文件系統中包含所有必要數據文件的能力。

http://statifier.sourceforge.net/http://www.magicermine.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM