我在 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
)?
答案1
很遗憾dpkg
MinGW-w64 目标没有支持的架构,因此您不能dpkg-buildpackage
像其他dpkg
支持的体系结构那样在简单的跨构建设置中使用。您也不能通过提供 MinGW-w64 交叉编译器作为gcc
和 来简化事情g++
;交叉编译设置需要了解工具链前缀。
在实践中,您需要手动构建每个依赖项,可能从相应的 Debian 软件包开始,如果这样可以让生活更轻松的话。您必须像往常一样设置构建配置以进行交叉编译构建,例如
./configure --host x86_64-w64-mingw32
Debian 中有一些使用 MinGW-w64 构建的软件包,可以作为示例;看libassuan
和libz
除其他外。
(我是 Debian 中的 MinGW-w64 工具链维护者。)