5. abcsh

abcsh是一个使用字母标注音符的软件,软件的功能如下所示:

假如一个乐谱字符版是这样的,

X:1
T:Speed the Plough
M:4/4
C:Trad.
K:G
|:GABc dedB|dedB dedB|c2ec B2dB|c2A2 A2BA|
  GABc dedB|dedB dedB|c2ec B2dB|A2F2 G4:|
|:g2gf gdBd|g2f2 e2d2|c2ec B2dB|c2A2 A2df|
  g2gf g2Bd|g2f2 e2d2|c2ec B2dB|A2F2 G4:|

abcsh处理之后就变成了这样,

5. abcsh_第1张图片

好!开始编译abcsh的源码(祈祷能顺利完成~_~!)

系统环境是刚刚安装完的Ubuntu14.04-i386版本,还没有装其他软件。

首先安装cvs软件来获取abcsh的源码:sudo apt-get install cvs

接着获取abcsh的源码:cvs -d:pserver:[email protected]:/sources/abcsh co abcsh

进入abcsh目录:cd abcsh,直接运行configure文件:./configure,但是遇到了下面的输出:
hjq@hjq-tmp-ubuntu32:~/abcsh$ ./configure 
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
configure: error: cannot run /bin/bash ./config.sub

查了一下资料,发现需要先运行:autoreconf --install
hjq@hjq-tmp-ubuntu32:~/abcsh$ autoreconf --install 
aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
acinclude.m4:9: warning: underquoted definition of jm_CHECK_TYPE_STRUCT_UTIMBUF
acinclude.m4:9:   run info Automake 'Extending aclocal'
acinclude.m4:9:   or see http://www.gnu.org/software/automake/manual/automake.html#Extending-aclocal
automake: warning: autoconf input should be named 'configure.ac', not 'configure.in'
configure.in:5: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated.  For more info, see:
configure.in:5: http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation
configure.in:19: installing './compile'
configure.in:15: installing './config.guess'
configure.in:15: installing './config.sub'
Makefile.am: installing './depcomp'
automake: warning: autoconf input should be named 'configure.ac', not 'configure.in'
Makefile.am:14: warning: suffix '.texinfo' for Texinfo files is discouraged; use '.texi' instead

再重新执行./configure,最后几行的输出,代表成功生成了Makefile文件:
configure: creating ./config.status
config.status: creating Makefile
config.status: creating abcsh.lsm
config.status: creating abcsh.spec
config.status: creating config.h
config.status: executing depfiles commands

紧接着make一下:
hjq@hjq-tmp-ubuntu32:~/abcsh$ make
make  all-am
make[1]: Entering directory `/home/hjq/abcsh'
restore=: && backupdir=".am$$" && \
	am__cwd=`pwd` && CDPATH="${ZSH_VERSION+.}:" && cd . && \
	rm -rf $backupdir && mkdir $backupdir && \
	if (makeinfo --version) >/dev/null 2>&1; then \
	  for f in abcsh.info abcsh.info-[0-9] abcsh.info-[0-9][0-9] abcsh.i[0-9] abcsh.i[0-9][0-9]; do \
	    if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
	  done; \
	else :; fi && \
	cd "$am__cwd"; \
	if makeinfo   -I . \
	 -o abcsh.info abcsh.texinfo; \
	then \
	  rc=0; \
	  CDPATH="${ZSH_VERSION+.}:" && cd .; \
	else \
	  rc=$?; \
	  CDPATH="${ZSH_VERSION+.}:" && cd . && \
	  $restore $backupdir/* `echo "./abcsh.info" | sed 's|[^/]*$||'`; \
	fi; \
	rm -rf $backupdir; exit $rc
/bin/bash: line 9: makeinfo: command not found
make[1]: *** [abcsh.info] Error 127
make[1]: Leaving directory `/home/hjq/abcsh'
make: *** [all] Error 2

没有makeinfo,安装texinfo,安装完之后,发现另一个错误,需要将abcsh源码中的abcsh.texinfo文件里的"@Subtitle A shell for processing ABC music notation content" 修改为"@subtitle A shell for processing ABC music notation content",大小写问题!!!!!

接下来遇到了更多问题:abcsh.c文件内实现的getline和stdio.h里的声明冲突、guile库文件依赖、又从源码安装了libgraph1.0.2、源码安装guile1.6,最后,陷在"ERROR: unknown doc attribute: (location (string . alist.c) (int . 58) (hash . hash) (int . 53) (string . alist.c))"这个错误里面~~~~

又失败了一个~_~!



你可能感兴趣的:(GNU,looking,through,开源,gnu,GPL,源码)