zoukankan      html  css  js  c++  java
  • 第一个GTK程序:中国农历 之二

    在完成代码之后,我们开始尝试准备编译环境

    glade-2在生成代码时,为我们考虑好了,自动生成了configure.in及autogen.sh。

    依道理来说,只要稍做修改,我们就可以编译/链接再运行了。

    但由于glade-2早在2007年就停止开发了,所以还得我们自己来动手。

    这里面要用到的就是一系列工具:autoconf/automake/intltool等等。

    现在的autoconf认的是configure.ac文件了。这个文件需要通过扫描代码重新生成,运行autoscan即可。生成的autoscan.log是日志信息,删除即可

    生成的configure.scan就是我们要的东西,基于这个文件基础之上进行修改

    configure.scan最初的内容
    #                                               -*- Autoconf -*-
    # Process this file with autoconf to produce a configure script.
    
    AC_PREREQ([2.69])
    AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
    AC_CONFIG_SRCDIR([src/callbacks.h])
    AC_CONFIG_HEADERS([config.h])
    
    # Checks for programs.
    AC_PROG_CXX
    AC_PROG_CC
    AC_PROG_MAKE_SET
    
    # Checks for libraries.
    
    # Checks for header files.
    AC_CHECK_HEADERS([libintl.h string.h unistd.h])
    
    # Checks for typedefs, structures, and compiler characteristics.
    
    # Checks for library functions.
    
    AC_CONFIG_FILES([Makefile
                     src/Makefile])
    AC_OUTPUT

    configure.scan进行修改之后就可以改名为configure.ac,替换glade-2生成的configure.in。这个文件使用的m4语法。

    首先,我们要修改的是包名:

    AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])

    修改为:

    AC_INIT(lunarcalendar, 0.1, eagle_xmw@yahoo.com.cn)

    对比configure.in,我们还需要增加检测系统是否包含gtk+-2.0及lunar-calendar-2.0这两个包

    即在“# Checks for libraries.”增加下面增加如下内容

    # Checks for libraries.
    pkg_modules="gtk+-2.0 >= 2.10.0 lunar-calendar-2.0 >= 2.4 " PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) AC_SUBST(PACKAGE_CFLAGS) AC_SUBST(PACKAGE_LIBS)

    上面是简单拷贝,再增加模块检查,其实,我们应该将其中的PACKAGE修改成合适的名字,比如,修改为:

    # Checks for libraries.
    pkg_modules="gtk+-2.0 >= 2.10.0 lunar-calendar-2.0 >= 2.4 "
    PKG_CHECK_MODULES(GTKLUNARCALENDAR, [$pkg_modules])
    AC_SUBST(GTKLUNARCALENDAR_CFLAGS)
    AC_SUBST(GTKLUNARCALENDAR_LIBS)

    修改完之后,改名为configure.ac,对于这个文件的修改,我们先到这儿

  • 相关阅读:
    在React中使用Redux数据流
    开发中经常遇到的一些css样式问题
    记录一下CSS outline-width 属性
    使用git stash命令保存和恢复进度
    一分钟搭建好webpack通用坏境
    二维码生成(QRCode.js)
    IE6浏览器有哪些常见的bug,缺陷或者与标准不一致的地方,如何解决
    如何进行网站性能优化
    JavaScript深拷贝与浅拷贝的理解
    新问题: 两个样式对同一个元素操作,为什么最新的样式没有起作用?(已解决)
  • 原文地址:https://www.cnblogs.com/eaglexmw/p/3032991.html
Copyright © 2011-2022 走看看