GTK+配置,xp系统.编译器mingw
gtk+配置.
系统: window 7家庭版(正版)
编译器:mingw
gcc版本:4.5
1. 下载gtk开发包,http://www.gtk.org/download/win32.php.由于gtk包含很多依赖包.所以推荐下载网址中的all-in-one bundles of the GTK+包,包含所有的基础和第三方包.
2. 解压安装,解压到c:\gtk.在环境变量中添加gtk地址,以便系统找到编译所需程序(例如pkg-config程序),动态库(.dll),在环境变量的系统变量PATH变量中添加c:\gtk\bin参数.
3. 测试.运行pkg-config --cflags gtk+-2.0,运行正常,运行pkg-demo进行程序运行测试.发现缺少很多DLL.下载gtk+ for runtime environment(http://sourceforge.net/projects/gtk-win/).获取其中的bin文件夹中的dll文件.拷贝到c:\gtk\bin中.至此,dll动态库依赖没有问题了
4. 编写gtk模板源代码,进行测试.
#include<gtk/gtk.h> static void destroy(GtkWidget *widget,gpointer data); int main( int argc, char * argv[]) { GtkWidget *window; gtk_init(&argc,&argv); window=gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(G_OBJECT(window), "destroy" ,G_CALLBACK(destroy),NULL); gtk_widget_show(window); gtk_main(); return 0; } static void destroy(GtkWidget *widget, gpointer data) { gtk_main_quit(); } |
编译:由于cmd环境中用gcc *.c -o * `pkg-config --cflags --libs gtk+-2.0`编译不行,可能不支持额外的命令吧(注意pkg-config前面的符号,为tab键位上方的`符号,并不是回车键前面的'符号).这个语句在linux中能运行.不知道怎么解决,只好另行其他.一种是运行pkg-config --flags --libs gtk+-2.0获取运行参数,再复制成gcc的编译参数(编译通过).
由于编译参数太多了,不便于以后重复利用,可以写成makefile.如下.保存运行mingw32-make命令编译.
main:gtk_test.c
gcc gtk_test.c -o main -mms-bitfields -IC:/opt/gtk/include/gtk-2.0 -IC:/opt/gtk/lib/gtk-2.0/include -IC:/opt/gtk/include/atk-1.0 -IC:/opt/gtk/include/cairo -IC:/opt/gtk/include/pango-1.0 -IC:/opt/gtk/include/glib-2.0 -IC:/opt/gtk/lib/glib-2.0/include -IC:/opt/gtk/include -IC:/opt/gtk/include/freetype2 -IC:/opt/gtk/include/libpng14 -LC:/opt/gtk/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl
另外一种办法是采用msys仿linux环境.我是在msys中运行编译通过.
------------------勿在浮沙筑高台
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律