C:GTK + 3.0(3.20) - 从GNU/Linux(Arch Linux)到Windows的交叉编译

han*_*man 8 c linux windows cross-compiling gtk3

我需要将GNU/Linux(Arch Linux)中的GTK +应用程序交叉编译到Windows.我已经尝试过使用mingw32,但它没有看到所有库(包括c的标准库!).所以,我需要:找到标准的库; 找到所有其他(glib,gio,gtk等)库.但是有一个问题 - 我找不到它们.我也无法从Windows编译.我必须做什么?

Jac*_*din 6

您可以在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
    Run Code Online (Sandbox Code Playgroud)

如果一切顺利,应该创建一个新的可执行文件.它不会在我们的Linux系统上运行,因为它的目标是Windows!

3)发布

  • 创建一个包含二进制文件和Windows .dll文件的文件夹.如果您解压缩到/opt/gtk3-win32:

    mkdir ~/distri
    cp executable.exe ~/distri
    cp /opt/gtk3-win32/bin/*.dll ~/distri
    Run Code Online (Sandbox Code Playgroud)
  • 开始了 !将此文件夹传输到Windows框.双击可执行文件并...