程序员 nginx linux Android 微软 Ubuntu linux命令 google apache Windows shell java php centos wordpress Firefox Python HTML5 mysql 开源

Ubuntu下安装GoAccess过程中对源代码编译时产生错误的处理方法

前几日在VPS上面重新安装了下GoAccess,以前博主为图省事直接用的apt-get install goaccess进行的安装,没有对源代码进行编译安装,在Ubuntu下编译的时候不能通过报出了两个错误,博主于是发邮件给GoAccess官方需求解决方法,很快得到的回复。对了GoAccess官方邮件地址是goaccess(at)prosoftcorp.com,有问题可以直接给他们发邮件,很快就会得到答复!

我安装的时候产生的错误是这样的:

gcc -g -wall -I/usr/include/glib-2.0 -I/usr/lib/x86_64-Linux-gnu/glib-2.0/include   -lmenuw -lncursesw -lm  -o goaccess settings.o error.o commons.o goaccess.o parser.o ui.o util.o  -lglib-2.0 -lmenuw -lncursesw
ui.o: In function `create_graphs':
/usr/local/goaccess/ui.c:300: undefined reference to `log10'
/usr/local/goaccess/ui.c:300: undefined reference to `floor'
ui.o: In function `data_by_total_hits':
/usr/local/goaccess/ui.c:390: undefined reference to `log10'
/usr/local/goaccess/ui.c:390: undefined reference to `floor'
collect2: ld returned 1 exit status
make[1]: *** [goaccess] Error 1
make[1]: Leaving directory `/usr/local/goaccess'
make: *** [all] Error 2

官方的给出的解决办法是,首先安装autoconf,如果没有安装的话:

apt-get install autoconf

打开Makefile.am文件查看是否有如下两行的内容,没有则进行添加:

AM_CFLAGS = -g -Wall @GLIB2_CFLAGS@
goaccess_LDADD = -lm

修改configure.ac文件:

vi configure.ac

注释掉AM_INIT_AUTOMAKE,然后执行以下命令:

autoheader
autoconf

再次修改configure.ac文件:

vi configure.ac

将AM_INIT_AUTOMAKE注释去掉,然后执行以下命令:

aclocal
automake -a
autoconf

再次进行编译顺利通过,GoAccess官方建议用git获取源代码:

git clone git://goaccess.git.sourceforge.net/gitroot/goaccess/goaccess

我也是通过这种方式获取的源代码进行修改之后编译安装顺利通过。

延伸阅读

评论