My Gtk Tutorial 4

其实说到这里,我才发现,你可能压根还不知道如何开始一个项目。

当然最简单的办法之一,就是让半残的anjuta替你建立一个gtk项目的skeleton,然后把他扔一边,继续用你的vim,emacs去。

不过在这么多年之后,其实我已经不会写autotools的代码了,那么下面我就无聊来介绍下怎么用CMake和Gtk。

关于我曾经的CMake介绍,可以参考这里。

https://www.csslayer.info/wordpress/category/cmake/

有些人喜欢录视频写代码?这次录个视频好了。

代码下载:

gtk_test.tar.gz

P. S.

也许这篇文章会勾引出一些严重的autotools粉,例如啊glib/gtk的项目都是用autotools啊,glib/gtk项目用autotools集成好啊。我用了这么多年现在早忘了autotools 怎么写了,我写不出来,就这样。

构建脚本用什么写都没本质差别。照样有人用cmake生成GObjectIntrospection(附注:第一个这么干的当然不是我)。

This entry was posted in Gtk. Bookmark the permalink.

8 Responses to My Gtk Tutorial 4

  1. cnzh2005 says:
    Google Chrome 19.0.1084.46 GNU/Linux

    一刷新又一篇~~4

  2. SuperCat says:
    Firefox 13.0 GNU/Linux x64

    GTK+的项目的确用autotools的优势比较大,官方提供了很多工具的。包括GIR的支持,提供了一些m4脚本。用其它的工具并非不可行(就如本文的例子),只是增加一些工作量和维护难度罢了。

  3. csslayer says:
    Firefox 14.0a2 Windows 7

    @SuperCat 写习惯了cmake看着autotools隐隐蛋疼……
    这么写的不看着更清爽吗?

    gobject_introspection(
    FILENAME Fcitx-1.0.gir
    NSVERSION 1.0
    INCLUDE Gio-2.0 GObject-2.0 GLib-2.0
    PACKAGE_EXPORT fcitx-gclient
    LIBRARY fcitx-gclient
    SCANNER_ARGS –warn-all –add-include-path=${CMAKE_CURRENT_SOURCE_DIR}
    COMPILER_ARGS “–includedir=${CMAKE_CURRENT_SOURCE_DIR}”
    SYMBOL_PREFIXES fcitx
    SOURCES ${FCITX_GCLIENT_SOURCES} ${FCITX_GCLIENT_HEADERS}
    )

    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Fcitx-1.0.gir DESTINATION ${GOBJECT_INTROSPECTION_GIRDIR})
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Fcitx-1.0.typelib DESTINATION ${GOBJECT_INTROSPECTION_TYPELIBDIR})

  4. SuperCat says:
    Firefox 13.0 GNU/Linux x64

    这个其实真没有autotools那个简单,关键是GIR是有官方给的m4的……(如果没有情况就不一样了)。
    其实autotools用下来感觉也还好,用熟了也没感觉太复杂。

  5. csslayer says:
    Firefox 14.0a2 Windows 7

    @SuperCat 主要是看起来很清晰,不懂cmake你也能看懂这个,不是吗?
    而且cmake大部分脚本都会自带使用文档注释在里面。

  6. Mike says:
    Firefox 12.0 GNU/Linux x64

    其實我想問怎麼搞 GNU gettext 和 Gtk-Doc

  7. 右京样一 says:
    Firefox 13.0 GNU/Linux

    其实,我特别喜欢qmake那种可以配置得特别简单的……当然原因主要是我写不来大项目。

  8. Mike says:
    Firefox 14.0.1 FreeBSD

    不行,我得吐槽視頻看起來相當不方便。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.