2015-02-24 23 views
0

我在我的電腦上開發了一些運行Ubuntu 64位的程序。是否有可能在linux上爲許多體系結構編譯c?

我想在另一臺運行32位的PC上運行這些應用程序。可以在我的機器上進行編譯還是需要在另一臺計算機上重新編譯應用程序?

+1

是的。你甚至可以編譯在你的智能手機上運行的程序,甚至可以在微波爐上運行(如果它足夠聰明的話)。它被稱爲「交叉編譯」。 – 2015-02-24 18:27:21

回答

0

有編譯器設置/標誌,應該允許您在您的機器上執行此操作;哪些具體的你需要取決於你使用的編譯器。

1

一般而言,您需要爲編譯器提供一個類似於目標執行環境的環境。取決於一個環境對另一個環境的相似或不同,這可能是簡單的或複雜的。

假設編譯器是GCC,您只需要將-m32添加到您的編譯標誌以使它們在32位系統上工作;假設所有其他事物是平等的。確保您的系統上安裝了必需的32位依賴項(這意味着基本的C庫依賴項以及應用程序鏈接的每個庫的32位版本)。

由於您只是在64位主機上爲x86編譯,所以通常很簡單。我會建議但設立專門的環境,你可以用它來編譯 - 通常是某種chroot(見pbuilderschroot的chroot的debootstrap等)。

相關問題