gtk学习笔记01 helloworld
2021/8/1 6:07:33
本文主要是介绍gtk学习笔记01 helloworld,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
-
首先要有非常好用的clion工具
-
clion选择编译器,我这里选择了
MinGW
file
->settings
->ToolChains
->点击+号
(我这里自动识别了)->OK
-
并且去配置
cmake
生成debug
和release
- debug是默认有的,release我点加号的时候也自动识别了
- debug是默认有的,release我点加号的时候也自动识别了
-
新建一个c++工程
file
->new project
->c++ project
并得到目录结构
-
-
搭建开发环境
-
下载
GTK+ 3.6.4 Bundle for Windows
网址
http://www.tarnyko.net/dl/gtk.htm
-
-
解压后得到目录
gtk+-3xxx
- 我这里放到了
H:\mysoft\clion\clionWorkSpace
目录下 - 下面有
bin
,include
和lib
之类的目录
- bin目录下的
dll
是要放在编译好.exe
文件的同级目录
下,.exe
文件才能运行(windows下优先搜索当前文件夹下的dll)
- 我这里放到了
-
把
include
和lib
里的东西添加到cmakelists.txt
(使用cmake构建)H:\mysoft\clion\clionWorkSpace
部分需要自己修改哦include
的include_directories( H:/mysoft/clion/clionWorkSpace/gtk+364/include H:/mysoft/clion/clionWorkSpace/gtk+364/include/gtk-3.0 H:/mysoft/clion/clionWorkSpace/gtk+364/include/cairo H:/mysoft/clion/clionWorkSpace/gtk+364/include/gdk H:/mysoft/clion/clionWorkSpace/gtk+364/include/glib-2.0 H:/mysoft/clion/clionWorkSpace/gtk+364/include/pango-1.0 H:/mysoft/clion/clionWorkSpace/gtk+364/include/atk-1.0 H:/mysoft/clion/clionWorkSpace/gtk+364/include/gdk-pixbuf-2.0 H:/mysoft/clion/clionWorkSpace/gtk+364/lib/glib-2.0/include H:/mysoft/clion/clionWorkSpace/gtk+364/lib/gtk-3.0/include )
lib
的所有.a
文件link_libraries( H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libatk-1.0.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libcairo-gobject.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libcairo-script-interpreter.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libcairo.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libcroco-0.6.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libffi.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libfontconfig.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libfreetype.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgailutil-3.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgdk-3.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgdk_pixbuf-2.0.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgio-2.0.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libglib-2.0.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgmodule-2.0.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgobject-2.0.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgthread-2.0.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libgtk-3.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libjasper.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libjpeg.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/liblzma.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libpango-1.0.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libpangocairo-1.0.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libpangoft2-1.0.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libpangowin32-1.0.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libpixman-1.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libpng.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libpng15.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/librsvg-2.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libtiff.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libtiffxx.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libxml2.dll.a H:/mysoft/clion/clionWorkSpace/gtk+364/lib/libz.dll.a )
- 使用
Mingw
编译好.exe
后,双击运行时会弹出黑窗口控制台,在cmakelists.txt
里添加以下代码可消除黑窗口# mingw消除黑窗口 C++工程 set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -mwindows) # mingw消除黑窗口 C 工程 # set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -mwindows)
-
编写helloworld代码,把以下代码拷贝到
main.cpp
里面#include <gtk/gtk.h> #include <string.h> int main(int argc, char **argv) { GtkWidget *window; // 要先init gtk_init(&argc, &argv); // 才能new window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(window, "delete_event", gtk_main_quit, NULL); gtk_widget_show_all(window); gtk_main(); return 0; }
-
点击clion的小绿锤子编译(当然是可选的)得到
.exe
可执行文件 -
把可执行文件和那些
.dll
放到同级目录下,双击运行即可(我还不知道如何把他们打包成单个可执行文件)
这篇关于gtk学习笔记01 helloworld的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署