You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows 10系统下在Code::Blocks中安装GTK的问题求助

针对Code::Blocks + GTK+3(Win10 64位)的靠谱配置方案

兄弟,我之前在Win10 64位上用Code::Blocks搭GTK+3搞C++ GUI踩过不少坑,给你捋个亲测有效的步骤,应该能帮你搞定:

1. 先确认你的Code::Blocks编译器版本

打开Code::Blocks,点Settings -> Compiler,看清楚当前用的是MinGW还是MinGW-w64,是32位还是64位。核心原则:GTK包的位数必须和编译器完全一致,比如你用64位MinGW-w64,就必须下64位的GTK包,这是很多人踩坑的根源。

2. 用MSYS2安装GTK+3(最稳定的方式)

之前那些老教程的预编译包容易缺依赖,官方现在推荐用MSYS2维护,步骤如下:

  • 下载64位MSYS2安装包,装到非中文路径,比如C:\msys64
  • 打开「MSYS2 MinGW 64-bit」终端(别开成普通MSYS终端,否则装的是32位包),先更新包数据库:
    pacman -Syu
    
    更新完会提示重启终端,重启后再补更一次:
    pacman -Su
    
  • 一键安装GTK+3和编译工具:
    pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-toolchain
    
    这个命令会自动搞定GTK3、GCC、make所有依赖,不用自己瞎找。

3. 配置Code::Blocks用MSYS2的编译器

  • 打开Code::Blocks,点Settings -> Compiler -> Toolchain executables
  • ...按钮,选MSYS2的MinGW64路径:C:\msys64\mingw64\bin
  • 检查下面的工具路径,确保和这些对应:
    • C compiler: gcc.exe
    • C++ compiler: g++.exe
    • Linker for dynamic libs: g++.exe
    • Linker for static libs: ar.exe
    • Debugger: gdb.exe
      确认后点OK保存。

4. 给项目配置编译选项

  • 新建一个C++项目(Console或Empty都行),右键项目 -> Build options
  • 切到Compiler settings -> #defines,添加:
    GTK_DISABLE_DEPRECATED
    
    避免过时API的警告刷屏。
  • 切到Search directories -> Compiler,添加头文件路径:
    C:\msys64\mingw64\include
    
    (子目录会被编译器自动搜索,不用挨个加,省事儿)
  • 切到Search directories -> Linker,添加库路径:
    C:\msys64\mingw64\lib
    
  • 切到Linker settings -> Other linker options,添加:
    `pkg-config --cflags --libs gtk+-3.0`
    
    注意是反引号(不是单引号)!Code::Blocks会自动调用pkg-config获取正确的链接参数,不用手动加一堆lib文件。

5. 测试配置是否成功

新建main.cpp,粘贴这段测试代码:

#include <gtk/gtk.h>

static void activate(GtkApplication* app, gpointer user_data) {
  GtkWidget *window;

  window = gtk_application_window_new(app);
  gtk_window_set_title(GTK_WINDOW(window), "Hello GTK!");
  gtk_window_set_default_size(GTK_WINDOW(window), 200, 200);
  gtk_widget_show_all(window);
}

int main(int argc, char **argv) {
  GtkApplication *app;
  int status;

  app = gtk_application_new("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS);
  g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
  status = g_application_run(G_APPLICATION(app), argc, argv);
  g_object_unref(app);

  return status;
}

编译运行,如果弹出一个带「Hello GTK!」标题的小窗口,就说明配置成功了!

避坑提醒

  • 所有路径别碰中文:MSYS2安装路径、Code::Blocks项目路径都不能有中文,否则会出现找不到文件的诡异错误。
  • 环境变量补全:如果Code::Blocks提示找不到pkg-config,把C:\msys64\mingw64\bin加到系统PATH里,重启Code::Blocks就行。
  • 别乱改版本:别随便装GTK2的包,现在GTK3是主流,教程也更全。

内容的提问来源于stack exchange,提问作者John Doe

火山引擎 最新活动