是否有任何可能的方式來運行另一個Linux上編譯的二進制文件?我知道當然最簡單的方法是在另一臺機器上重建它,但讓我們假設我們唯一能得到的是一個二進制文件,那麼可能與否呢? (我知道這可能不容易,但我只是好奇)。從一個Linux到另一個Linux的二進制文件
1
A
回答
1
如果libc版本相同,並且任何其他依賴共享庫都可用,那麼可以,您可以從其他Linuxes運行二進制文件。在目標平臺的二進制文件上使用'ldd -v'來查看是否有任何庫丟失。
2
鑑於二進制文件中使用了相同或相似的庫,通常可以這樣做。你經常在不同版本的Linux上使用不同版本的庫,並且最終會出現崩潰,但是經常可以運行ldd
來查看可執行文件使用哪些庫,然後檢查第二個平臺以查看這些庫也存在。
2
雖然共享庫匹配的事情是非常真實的(使用ldd
獲取需要相同的共享庫列表),但更一般地說,系統需要是相同的架構(或者爲x86安裝了兼容庫/內核在x86_64體系結構上運行的二進制文件)。
一種選擇是靜態鏈接(或提供自己的共享庫),以便您只需在內核ABI級別兼容。當然,這意味着使用非標準選項(NIS,LDAP等)的系統/分發版本有點混亂。
另一種選擇是分發.a文件並在目標系統上執行最終鏈接。這當然假設系統有一個編譯器,但可能是對象分佈最容易移植的。
但是,在所有情況下,您必須具有體系結構兼容性。 x86是最常見的分母,但決不是唯一的分母。
相關問題
- 1. 將一個函數添加到Linux二進制文件
- 2. 追加內容從一個文件到另一個Linux的
- 3. 將一個用戶的所有設置/二進制文件應用到Linux中的另一個用戶
- 4. Linux將數據從一個文件添加到另一個文件
- 5. 強制一個Linux程序從另一個位置讀取的libc庫文件
- 6. 從一個二進制文件讀取信息並寫入另一個二進制文件
- 7. 如何將幾個二進制文件複製到Linux系統上的一個文件中?
- 8. 手機SDK的Linux二進制文件
- 9. Linux的shell:寫IP二進制文件
- 10. 將文件從Tomcat Linux移動到另一臺Linux服務器
- 11. 如何從一個二進制文件
- 12. 如何從一個二進制文件
- 13. 在linux中對兩個二進制文件進行Benchmarking
- 14. 防止文件被Linux中的另一個進程移動
- 15. LINUX/C++第二個文件
- 16. 如何在另一個二進制文件中定義二進制文件?
- 17. 如何比較Linux中的第一個N字節的二進制文件
- 18. 在Linux上旋轉二進制文件
- 19. 從一臺linux機器到另一臺linux機器的遠程文件傳輸
- 20. 如何在Linux shell中更新二進制文件中的一個字節?
- 21. Linux shell - 檢查並設置二進制文件的最後一個字節
- 22. 如何從另一個進程設置一個Linux進程的全局變量?
- 23. GIven兩個二進制數字,從一個副本複製到另一個
- 24. 構建多個平臺的Linux二進制文件
- 25. 用於i386和x86_64的Linux單個二進制文件
- 26. 從一個文件到另一個文件的高效複製
- 27. 如何檢查一個文件是否被另一個進程(Java/Linux)打開?
- 28. 提取物行基於從另一個文件中的值 - LINUX
- 29. Linux:從幾個目錄中複製一個文件
- 30. Linux的 - 在一個文件中搜索文本,並加入另一個文件