如何使用 msys2 构建 GTK3 应用程序?
How to build a GTK3 application with msys2?
我已经安装了 msys2 和 mingw-gcc,gtk3 包。
pacman -S mingw-w64-i686-toolchain
pacman -S mingw-w64-i686-gtk3
然后我尝试构建一个测试代码。
// main.c
#include <stdio.h>
#include <gtk\gtk.h>
int main()
{
printf("hello, msys2!");
return 0;
}
但此测试代码并未构建错误。
main.c:2:21: fatal error: gtk\gtk.h: No such file or directory
我检查了 gtk.h 的位置并进行了修复和重建。
// #include <gtk\gtk.h> -> #include <gtk-3.0\gtk\gtk.h>
C:/msys32/mingw32/include/gtk-3.0/gtk/gtk.h:30:21: fatal error: gdk/gdk.h: No such file or directory
我想这是我不知道的错误。
并阅读 gcc 选项。
gcc `pkg-config --cflags gtk+-3.0` -o example-0 example-0.c `pkg-config --libs gtk+-3.0`
一开始(使用 MSYS2 编译)我遇到了与使用以下命令(或类似命令)所建议的相同的问题和过程:
gcc `pkg-config --cflags gtk+-3.0` hello.c -o hello `pkg-config --libs gtk+-3.0`
但是错误消息仍然存在...所以经过一些互联网研究后,我发现我必须输入(在我的情况下)以下命令:
export PKG_CONFIG_PATH=/mingw32/lib/pkgconfig
或
export PKG_CONFIG_PATH=/mingw64/lib/pkgconfig
他们使用之前引用的编译命令,然后事情开始变得更好 运行 我能够编译和 运行 我的程序。
可悲的事情(其中之一)是我每次重新启动 MSYS2 时都必须执行此过程。我采纳了不再需要这样做的建议:-)
另一件令人遗憾的事情是,在重新安装新版本的 MSYS2(和我计算机中的 Codeblocks)之后,我仍然能够编译程序,但是由于错误 运行ning zlib1.dll.
消息是
"The procedure entry point inflateReset2 could not be located in
the dynamic link library zlib1.dll"
我已经安装了 msys2 和 mingw-gcc,gtk3 包。
pacman -S mingw-w64-i686-toolchain
pacman -S mingw-w64-i686-gtk3
然后我尝试构建一个测试代码。
// main.c
#include <stdio.h>
#include <gtk\gtk.h>
int main()
{
printf("hello, msys2!");
return 0;
}
但此测试代码并未构建错误。
main.c:2:21: fatal error: gtk\gtk.h: No such file or directory
我检查了 gtk.h 的位置并进行了修复和重建。
// #include <gtk\gtk.h> -> #include <gtk-3.0\gtk\gtk.h>
C:/msys32/mingw32/include/gtk-3.0/gtk/gtk.h:30:21: fatal error: gdk/gdk.h: No such file or directory
我想这是我不知道的错误。
并阅读 gcc 选项。
gcc `pkg-config --cflags gtk+-3.0` -o example-0 example-0.c `pkg-config --libs gtk+-3.0`
一开始(使用 MSYS2 编译)我遇到了与使用以下命令(或类似命令)所建议的相同的问题和过程:
gcc `pkg-config --cflags gtk+-3.0` hello.c -o hello `pkg-config --libs gtk+-3.0`
但是错误消息仍然存在...所以经过一些互联网研究后,我发现我必须输入(在我的情况下)以下命令:
export PKG_CONFIG_PATH=/mingw32/lib/pkgconfig
或
export PKG_CONFIG_PATH=/mingw64/lib/pkgconfig
他们使用之前引用的编译命令,然后事情开始变得更好 运行 我能够编译和 运行 我的程序。
可悲的事情(其中之一)是我每次重新启动 MSYS2 时都必须执行此过程。我采纳了不再需要这样做的建议:-)
另一件令人遗憾的事情是,在重新安装新版本的 MSYS2(和我计算机中的 Codeblocks)之后,我仍然能够编译程序,但是由于错误 运行ning zlib1.dll.
消息是
"The procedure entry point inflateReset2 could not be located in
the dynamic link library zlib1.dll"