Debian

建構交叉編譯(mingw)環境

  • August 26, 2022

我在 Debian 環境中工作,效果很好。如果我想建構一個項目,我sudo apt install會建構依賴項,然後建構。

但是,我想使用 mingw-w64 從 Debian 環境進行交叉編譯。我沒有任何-w64版本的建構依賴項,所以我必須建構它們。

有沒有一種方法apt source <package>,然後dpkg-buildpackage使用特定的工具鏈?

我猜--target-arch這接近我需要的,但我懷疑 w64 不是受支持的架構。

我看到http://clang.debian.net描述了一種使用 clang 建構 debian 存檔的方法,包括:

cd /usr/bin
rm /usr/bin/{g++,gcc,cpp}
ln -s /usr/bin/clang++ /usr/bin/g++
ln -s /usr/bin/clang /usr/bin/{gcc,cpp}

這是實現這一目標的合理方法嗎?(而mingw不是clang)?

不幸的是,MinGW-w64 目標沒有dpkg-supported 架構,因此您不能dpkg-buildpackage像其他支持的架構那樣在簡單的交叉建構設置中使用dpkg。您也不能通過將 MinGW-w64 交叉編譯器提供為gcc和來簡化事情g++;交叉編譯設置需要了解工具鏈前綴。

在實踐中,您需要手動建構每個依賴項,可能從相應的 Debian 軟體包開始,如果這樣可以讓生活更輕鬆。您必須像往常一樣為交叉編譯的建構設置建構配置,例如

./configure --host x86_64-w64-mingw32

Debian 中有一些帶有 MinGW-w64 建構的軟體包,可以作為範例;見libassuan等等libz

(我是 Debian 中的 MinGW-w64 工具鏈維護者。)

引用自:https://unix.stackexchange.com/questions/714995