簡體   English   中英

將 GTK+ 應用程序從 Linux 交叉編譯到 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”的問題。

更多信息請參見項目頁面https://fedoraproject.org/wiki/MinGW

您可以使用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

  1. git clone https://github.com/mxe/mxe.git
  2. 成為root用戶: su
  3. mv mxe /opt/mxe
  4. cd /opt/mxe
  5. 自己構建 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM