Debian
如何在 64 位 Debian 上建構和執行 32 位軟體?
我正在研究開發一個需要專有 32 位庫並且應該在 64 位 Debian(jessie,amd64)上執行的 C++ 程序。我假設我需要創建一個 32 位執行檔才能使用該 32 位庫(或者有沒有辦法從 64 位執行檔中使用該庫?)
如何在 64 位 Debian 上建構我的程序?還是我應該使用 32 位的 Debian 機器來建構它,然後轉移到 64 位的 Debian 上?
我通常使用 cmake,如果這有什麼不同的話。
是的,要使用 32 位庫,您需要創建一個 32 位二進製文件。
gcc-multilib
在 amd64 上的 Debian 8 上,您可以使用(for C) 或g++-multilib
(for C++) 和 GCC 的-m32
選項建構 32 位二進製文件。使用 CMake,我想添加
-m32
到標誌就足夠了。可以在單個項目中為 32 位和 64 位建構設置 CMake,但它相當複雜;有關詳細範例,請參閱rr
。CMakeLists.txt
要執行32 位二進製文件,您需要為 i386 啟用多架構支持:
sudo dpkg --add-architecture i386 sudo apt-get update
然後安裝適當的庫,從
libc6:i386
和開始libstdc++6:i386
。