![](/img/trans.png)
[英]C: GTK+ 3.0 (3.20) - Cross-Compile from GNU/Linux (Arch Linux) to Windows
[英]Cross compile GTK+ application from Linux to Windows?
如何將我的 GTK+ 應用程序(用 C 編寫)從 Linux 交叉編譯到 Windows? 我可以用“mingw32”替換“gcc”命令嗎?
Fedora有一個很棒的mingw32交叉編譯器工具鏈,它帶有很多預編譯的庫,包括GTK +和gtkmm。 對於大多數應用程序,您只需要安裝交叉編譯器和交叉編譯的GTK +庫:yum install mingw32-gcc mingw32-gtk2
一旦安裝了所需的一切,編譯您的應用程序就是運行“ mingw32-configure”和“ make”的問題。
您可以使用mingw-cross- env-您要做的就是更改CC / CXX環境路徑以使用i686-mingw32-前綴並將mingw-cross-env bin dirs(兩者)導出到PATH變量(或者如果您使用的是自動工具,則更加簡單)-請參閱首頁上的文檔。
實際上有一個名為MXE的項目正是這樣做的。
它有一個簡單的包裝器( x86_64-w64-mingw32.static-cmake
),可以在使用 Linux 的同時將您的項目交叉構建到 Windows。 允許將您的項目均勻地靜態構建到單個 .exe 文件中! 當然也支持共享構建( x86_64-w64-mingw32.shared-cmake
)。 示例包裝腳本適用於基於 CMake 的項目。
在使用 MXE 構建項目之前,您需要從源代碼構建 GTK3。 (有一些 Linux 軟件包可用,但大多已過時)。 如果您使用的是 C++,您還可以構建gtkmm3
。 由於您在 C 位置,因此您只需要構建gtk3
。
git clone https://github.com/mxe/mxe.git
su
mv mxe /opt/mxe
cd /opt/mxe
對於 GTK3 和 Gtkmm3 在 Windows 64 位下的靜態構建:
sudo make gtk3 gtkmm3 -j 16 MXE_TARGETS='x86_64-w64-mingw32.static' MXE_PLUGIN_DIRS='plugins/gcc12'
對於 Windows 64 位的共享構建(再次 GTK3 + Gtkmm3):
sudo make gtk3 gtkmm3 -j 16 MXE_TARGETS='x86_64-w64-mingw32.shared' MXE_PLUGIN_DIRS='plugins/gcc12'
更多信息請參閱MXE.cc 上的教程步驟。
完成交叉編譯環境/MXE 構建后。 現在您可以使用我之前提到的 CMake 包裝腳本。 這些腳本位於/opt/mxe/usr/bin/
目錄中。
腳本(如x86_64-w64-mingw32.static-cmake
)現在可用於在使用 Linux 操作系統時將項目編譯到 Windows。 構建結果將是一個 Windows .exe
。
免責聲明:我個人正忙於將 MXE 中的整個 GTK3/Gtkmm3 堆棧更新到最新的 GTK 3.24 版本。 我會及時向大家發布!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.