我的系统是CentOS 5.0
准备装的是RRDTOOL1.3最新版
软件下载在:
http://oss.oetiker.ch/rrdtool/pub/
http://oss.oetiker.ch/rrdtool/pub/libs/
按顺序编译了以下库:
1.pixman-0.10.0
2.libpng-1.2.18
3.freetype-2.3.5
4.fontconfig-2.4.2
5.cairo-1.6.4
6.glib-2.15.4
7.pango-1.21.1
编译时候的路径都是 configure --prefix=/usr
全部通过
最后编译rrdtool-1.3rc8
./confiure --prefix=/usr/local/rrdtool 也通过
make到一半的时候报错:
./.libs/librrd.so -lxml2 -lz -lm -ldl -lselinux -Wl,--rpath -Wl,/progfile/rrdtool/lib
/usr/lib/libpango-1.0.so.0: undefined reference to `g_assertion_message_expr'
/usr/lib/libpangocairo-1.0.so.0: undefined reference to `g_once_init_enter_impl'
/usr/lib/libpango-1.0.so.0: undefined reference to `g_assertion_message'
/usr/lib/libpangocairo-1.0.so.0: undefined reference to `g_once_init_leave'
collect2: ld returned 1 exit status
make[2]: *** [rrdtool] Error 1
网上查了一下,有说发生undefined reference to 的现象可能是glib版本是2.15的bug
于是安装了glib-2.14.5,pango-1.21.1也重新编译安装了一下
./confiure --prefix=/usr/local/rrdtool 还是通过
make到一半还是报错,不过稍微有点不同:
/usr/lib/libpangocairo-1.0.so.0: undefined reference to `g_once_init_enter_impl'
/usr/lib/libpango-1.0.so.0: undefined reference to `g_unichar_get_script'
/usr/lib/libpangocairo-1.0.so.0: undefined reference to `g_once_init_leave'
collect2: ld returned 1 exit status
网上还看到undefined reference类似错误,但不是这个软件的,说要装gtk2 ,atk什么的,查了一下,都装了
[root@localhost rrdtool-libs]# rpm -qa | grep gtk
gtkspell-2.0.11-2.1
gtkhtml3-3.12.0-1.fc6
pygtk2-libglade-2.10.1-8.el5
gtkhtml2-2.11.0-3
gtk2-2.10.4-19.el5
gtk2-engines-2.8.0-3.el5
usermode-gtk-1.88-3.el5
pygtk2-2.10.1-8.el5
gnome-python2-gtksourceview-2.16.0-1.fc6
gtksourceview-1.8.0-1.fc6
gtk2-devel-2.10.4-19.el5
authconfig-gtk-5.3.12-2.el5
[root@localhost rrdtool-libs]# rpm -qa |grep atk
atk-devel-1.12.2-1.fc6
atk-1.12.2-1.fc6
还有别人写的下面的解释,不太理解最后一段,如何swap?
All those "undefined reference" messages mean you are missing a library, or the libraries are linked in the wrong order.
I'll bet it's in /usr/local/lib/libpango-1.0.so
Code:
$ nm /usr/local/lib/libpango-1.0.so | grep pango_font_description_get_gravity
T pango_font_description_get_gravity...
check the compile instruction in the makefile. You'll probably see that /usr/local/lib/libpangoft2-1.0.so is before /usr/local/lib/libpango-1.0? So swap them and it should compile fine.
各位高手帮我看看,我实在是找不出法子了,帮帮忙阿!!!