我目前有一個程序,我在x86_64中編譯過,它依賴於也在x86_64中編譯的相當多的庫(因此重新編譯它們都將是一個大項目)。我期待運行i386 dylib,但是無論何時使用dlopen加載它,我都會收到一個錯誤消息,說它不是爲我的架構而構建的。有沒有辦法將i386 lib直接轉換爲x86_64(我沒有這個源代碼)或者在x86_64架構上運行它?從不同的體系結構中加載dylib
0
A
回答
3
無法在x86_64可執行文件中加載i386庫。
只有從i386獲得x86_64庫的方法是重新編譯它以獲得正確的目標。如果您沒有源代碼,則無法完成。
你可以重新編譯所有你的i386的代碼,然後使用這個庫。
2
無法將32位(i386)庫(dylib)加載到64位(x86_64)進程中,反之亦然。
該機器可以運行32位或64位進程;你不能做的是在一個進程中混合使用32位和64位代碼。
2
如果這個庫是不可替代的,你不能重新編譯它,並且你真的需要程序的其餘部分是x86_64,你可以在一個單獨的進程中運行它,並使用某種形式的IPC來調用代碼並傳遞結果。
儘管在很多情況下,重寫庫或將其替換爲執行類似工作的其他內容可能更容易。
相關問題
- 1. as3加載體系結構
- 2. dylib雪豹「文件不是必需的體系結構」
- 3. 加載框架的體系結構
- 4. dylib動態庫調用dylib:未定義的符號體系結構i386
- 5. 多頭和不同的體系結構
- 6. 獲取libxml2.2.dylib文件錯誤「文件不是必需的體系結構」
- 7. 針對不同體系結構的不同內核
- 8. 使用./configure構建特定體系結構的.dylib或.a文件
- 9. 把加載dylib
- 10. C++:在同樣的體系結構層
- 11. 不同體系結構的操作系統彙編語言
- 12. 從pygame的系統中加載字體
- 13. 爲加載網格數據的N層體系結構?
- 14. 插件在運行時加載的體系結構
- 15. 在結構中訪問不同函數中的結構體
- 16. MVC體系結構
- 17. Graphql體系結構
- 18. Rails體系結構?
- 19. mongodb體系結構
- 20. Firebug體系結構
- 21. CakePHP體系結構
- 22. Elasticsearch體系結構
- 23. 如何爲不同體系結構構建Visual Studio項目
- 24. 在firemonkey中加載dylib
- 25. 從C#中的文件加載結構體#
- 26. 未定義的符號體系結構i386使用libsqlite3.dylib與FMDB Xcode 7 ios9
- 27. 從PL/SQL中調用Java加密體系結構(JCA)
- 28. Selenium RC體系結構和Selenium WebDriver體系結構差異
- 29. 三層體系結構與三層服務器體系結構
- 30. Html5視頻疊加體系結構
不是真的 - 你需要編寫一些中間代碼 - 谷歌的「thunking」 - 這是相當複雜的,取決於dylib的作用... – Yahia