edwinzhou 发表于 2008-6-15 18:22:38

rrdtool(类似MRGT)有谁装过,为啥我编译总是error:undefined reference to ...

我的系统是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: *** 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什么的,查了一下,都装了
# 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

# 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.

各位高手帮我看看,我实在是找不出法子了,帮帮忙阿!!!

Bluedata 发表于 2008-7-24 17:25:10

看这里:
http://dag.wieers.com/rpm/packages.php

添加 yum 源,yum 安装吧,呵呵。

灰色橙子 发表于 2009-7-9 11:06:52

解决办法就是库的指向有问题。在/usr/local/lib下没有库文件造成,所以方法之一就是把/usr/lib里的库全部拷贝到/usr/local/lib下。
页: [1]
查看完整版本: rrdtool(类似MRGT)有谁装过,为啥我编译总是error:undefined reference to ...