QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4603|回复: 2

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

[复制链接]
发表于 2008-6-15 18:22:38 | 显示全部楼层 |阅读模式
我的系统是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.

各位高手帮我看看,我实在是找不出法子了,帮帮忙阿!!!
发表于 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下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-25 21:43 , Processed in 0.131278 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表