第一部分:GTK安装
本文采用MSYS2的方式安装GTK,使用CLion IDE
安装MSYS2
下载地址:MSYS2
在MSYS2的命令行安装GTK和MinGW
GTK
32位:pacman -S mingw-w64-i686-gtk3
64位:pacman -S mingw-w64-x86_64-gtk3
参考 <MSYS2使用教程 - Pete-Jones - 博客园>
MinGW
32位:pacman -S mingw-w64-i686-toolchain base-devel
64位:pacman -S mingw-w64-x86_64-toolchain base-devel
参考<Go版GTK:环境搭建(windows)_win go gtk-优快云博客>
设置Path(如果为32为则将32改为64)
新建MINGW_HOME
{安装目录}\msys2\mingw64
新建C_INCLUDE_PATH
%MINGW_HOME%\include
新建LIBRARY_PATH
%MINGW_HOME%\lib
变量Path中添加如下值
%MINGW_HOME%\bin
参考 <MSYS2使用教程 - Pete-Jones - 博客园>
测试
新建cmd命令窗口,依次执行命令pkg-config gtk+-2.0 --cflags和pkg-config gtk+-2.0 --libs,无误说明GTK+3环境配置成功
第二部分:配置CLion
首先,更改CLion的编译器为MSYS2中的MinGW,自行修改为32/64位
新建工程,在CMakeLists.txt的最后追加gtk的头文件和库
`TARGET_LINK_LIBRARIES`中的gtk是你的工程名
FIND_PACKAGE(PkgConfig REQUIRED)
PKG_CHECK_MODULES(GTK3 REQUIRED gtk+-3.0)
INCLUDE_DIRECTORIES(${GTK3_INCLUDE_DIRS})
LINK_DIRECTORIES(${GTK3_LIBRARY_DIRS})
TARGET_LINK_LIBRARIES(gtk ${GTK3_LIBRARIES})
再用如下代码测试环境是否搭建正确
#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), "Window");
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_FLAGS_NONE);
g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
status = g_application_run(G_APPLICATION(app), argc, argv);
g_object_unref(app);
return status;
}
编译&运行。如果弹出如下窗口,恭喜,环境搭建成功。
如果提示-ldwmapi not found ,尝试参考<https://stackoverflow.com/questions/44911016/error-while-compiling-with-cmake-cannot-find-ldwmapi>