您的位置:首页 > 其它

5. abcsh

2016-01-29 11:37 204 查看
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处理之后就变成了这样,



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

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

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

接着获取abcsh的源码:cvs -d:pserver:anonymous@cvs.sv.gnu.org:/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 GPL 源码