MingW Autotools 编写Vala程序 之一

来源:互联网 发布:一彩送货单软件 编辑:程序博客网 时间:2024/06/01 23:37

本文并非深奥的技术讨论,只是遇到的一些问题,花了很多精力解决,希望分享给大家

Vala是Gnome为了能加快GObject应用开发采用的一种新兴的面向对象语言,他的语法类似于微软的C#。作为一个GNU还好者,本人的很多PC应用程序,都是采用GTK+ 2.0开发的,当然也会实验性的了解Vala。

对于大部分了解GNU的人来说都会了解Makefile,很多人下载源码以后都会用configure编译和安装,而这些源于GNU的Autotools工具。他是一种能够动态的生成Makefile的工具组。VALA源于GNU当然,Autotools也就理所当然的随着版本的升级开始支持Vala了。

参考如下的帖子应该可以基本了解VALA使用Autotool的步骤

https://pomozok.wordpress.com/2011/01/02/vala-autotools-example/

或者你可以直接用GIT工具Clone帖子里提到的工程文件

https://github.com/anatol/vala-sample

但是很遗憾,可能是我的autotool工具集的问题,执行autogen.sh的时候,一直会提示AM_PROG_VALAC没有定义,于是我阅读了aclocal/vala.m4和aclocal-1.11/vala.m4的代码,发现这个版本没有对这个宏的定义,但是却一直需要定义这个宏,可能希望自己定义吧。

在网上找到了vala.m4的新的定义

http://code.openhub.net/file?fid=FuZPiv7RFAH2mi8ZCaNSNbAeL6c&cid=Odd6moAHXVo&s=&fp=299985&mp&projSelected=true#L0

# Autoconf support for the Vala compiler# Copyright (C) 2008-2014 Free Software Foundation, Inc.## This file is free software; the Free Software Foundation# gives unlimited permission to copy and/or distribute it,# with or without modifications, as long as this notice is preserved.# Check whether the Vala compiler exists in $PATH.  If it is found, the# variable VALAC is set pointing to its absolute path.  Otherwise, it is# simply set to 'valac'.# Optionally a minimum release number of the compiler can be requested.# If the ACTION-IF-FOUND parameter is given, it will be run if a proper# Vala compiler is found.# Similarly, if the ACTION-IF-FOUND is given, it will be run if no proper# Vala compiler is found.  It defaults to simply print a warning about the# situation, but otherwise proceeding with the configuration.## AM_PROG_VALAC([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])# --------------------------------------------------------------------------AC_DEFUN([AM_PROG_VALAC],  [AC_PATH_PROG([VALAC], [valac], [valac])   AS_IF([test "$VALAC" != valac && test -n "$1"],      [AC_MSG_CHECKING([whether $VALAC is at least version $1])       am__vala_version=`$VALAC --version | sed 's/Vala  *//'`       AS_VERSION_COMPARE([$1], ["$am__vala_version"],         [AC_MSG_RESULT([yes])],         [AC_MSG_RESULT([yes])],         [AC_MSG_RESULT([no])          VALAC=valac])])    if test "$VALAC" = valac; then      m4_default([$3],        [AC_MSG_WARN([no proper vala compiler found])         AC_MSG_WARN([you will not be able to compile vala source files])])    else      m4_default([$2], [:])    fi])

需要用这个vala.m4替换aclocal/vala.m4和aclocal-1.11/vala.m4,再执行上面的autogen.sh就可以顺利的产生configure了。


0 0
原创粉丝点击