GTK之前有看过,还专门购买了一本关于GTK的书籍,那是主要是为了学习C的面向对象实现。现在又看GTK是因为准备购买PinePhone,主要看中了PinePhone可以运行多个Linux发行版本。现在无论是iOS还是Android都不能自由的使用喜欢的语言。作为一个曾经的iOS开发者,iOS的运行速度还真的没得说。Android因为使用Java缘故,总还是没有办法更快似乎,所以一直想着整一台Linux手机自己定制UI,不过找一台Linux手机实在是太难了,主要是目前手机都是这些公司定制的硬件,所以驱动是个大问题。
为什么选择GTK呢?我也看了下QT,之前也简单的使用了下,确实非常适合开发UI程序,不过授权方面还是有点问题,GTK没有这个问题。另外无论C/C++对我来说都不是太大的问题,所以还是用GTK了。
考虑到主要是用来开发Linux的,所以直接在Ubuntu下跑个例子看下。
1 |
|
问题
1 | /usr/include/pango-1.0/pango/pango-coverage.h:28:10: fatal error: 'hb.h' file not found |
解决方案运行pkgconf --cflags harfbuzz
1 | /usr/bin/ld: cannot find -lBlocksRuntime |
解决方案运行sudo apt-get install libblocksruntime-dev
编译
1 | clang main.c -std=gnu11 -fblocks -lBlocksRuntime -I/usr/include/glib-2.0/ -I/usr/include/atk-1.0/ -I/usr/include/gdk-pixbuf-2.0/ -I/usr/include/cairo/ -I/usr/include/pango-1.0/ -I/usr/lib/x86_64-linux-gnu/glib-2.0/include/ -I/usr/include/gtk-3.0/ -I /usr/include/harfbuzz/ -L/usr/lib/x86_64-linux-gnu/ -lgtk-3 -lgobject-2.0 -lpangocairo-1.0 -lgio-2.0 -latk-1.0 -lgdk-3 -lglib-2.0 -o gtk-test |
总结
GTK开发确实比较麻烦,后续还的配置个好的IDE环境,不过想想要求的OC开发,其实对于C还是蛮亲切的。其实一旦涉及真实项目,更多都是对框架的学习了,先挖个坑。