簡體   English   中英

C:GTK + 3.0(3.20) - 從GNU / Linux(Arch Linux)到Windows的交叉編譯

[英]C: GTK+ 3.0 (3.20) - Cross-Compile from GNU/Linux (Arch Linux) to Windows

我需要將GNU / Linux(Arch Linux)中的GTK +應用程序交叉編譯到Windows。 我已經嘗試過使用mingw32 ,但它沒有看到所有的庫(包括c的標准庫!) 所以,我需要:找到標准的庫; 找到所有其他(glib,gio,gtk等)庫。 但是有一個問題 - 我找不到它們。 我也無法從Windows編譯。 我必須做什么?

您可以在source forgehttp://win32builder.gnome.org/ 找到適用於Windows的gtk 3的二進制文件。

解壓縮后,您可以按照本教程中的步驟操作:

1)安裝編譯工具鏈

  • 安裝適用於Windows的GCC編譯器(即MinGW, Arch Linux doc of package ):

    #pacman -S migw-w64

  • 直接從官方網站下載最新的一體化ZIP包存檔(這里是直接鏈接

  • 將GTK +調整到其位置:在終端中,移動到剛剛創建的“gtk3-win32”文件夾。 例如: $cd /opt/gtk3-win32然后執行:

    find -name '*.pc' | while read pc; do sed -e "s@^prefix=.*@prefix=$PWD@" -i "$pc"; done

2)編譯

  • 我們將告訴pkg-config在我們的自定義路徑中找到GTK + 3庫。 如果您解壓縮到/opt/gtk3-win32

    export PKG_CONFIG_PATH=/opt/gtk3-win32/lib/pkgconfig

    我們准備編譯一個示例C源代碼! 讓我們使用這種風格的命令:

     i586-mingw32msvc-gcc source.c -o executable.exe `pkg-config --cflags --libs gtk+-3.0 

如果一切順利,應該創建一個新的可執行文件。 它不會在我們的Linux系統上運行,因為它的目標是Windows!

3)發布

  • 創建一個包含二進制文件和Windows .dll文件的文件夾。 如果您解壓縮到/opt/gtk3-win32

     mkdir ~/distri cp executable.exe ~/distri cp /opt/gtk3-win32/bin/*.dll ~/distri 
  • 開始了 ! 將此文件夾傳輸到Windows框。 雙擊可執行文件並...

以下說明適用於gcc 5.3.0(線程模型:posix)和gtk + 3.20.4

在Windows上安裝msys2

安裝gtk3文件並復制文件

安裝完成后,在msys2 shell中

pacman -S mingw-w64-i686-gtk3

cd /mingw32
tar cfz c:/temp/mingw32.tar.gz

確保在Arch Linux上匹配gcc版本

對於gcc 5.3.0,編輯/etc/pacman.conf

[core]
Server = https://archive.archlinux.org/repos/2016/05/10/$repo/os/$arch

[extra]
Server = https://archive.archlinux.org/repos/2016/05/10/$repo/os/$arch

[community]
Server = https://archive.archlinux.org/repos/2016/05/10/$repo/os/$arch

在升級的情況下

pacman -Syu

在降級的情況下

pacman -Syyuu

后來的Arch Linux版似乎有gcc 6.1.1可能與msys2 gcc不兼容。 對於不會升級的Arch Linux安裝(即沒有安全更新),虛擬機可能是個好主意。

將文件復制到linux

在linux上解壓縮mingw32.tar.gz ,例如/ opt / mingw32

修改pkg-config文件

perl -pi.bak -e 's,^prefix=.*,prefix=/opt/mingw32,' /opt/mingw32/lib/pkgconfig/*.pc

設置PKG_CONFIG_PATH

例如,在執行配置腳本之前

export PKG_CONFIG_PATH=/opt/mingw32/lib/pkgconfig

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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