LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1158|回复: 6

/usr/include/stdlib.h:393: undefined reference to `gtk_combo_box_get_active_te

[复制链接]
发表于 2007-8-20 20:09:10 | 显示全部楼层 |阅读模式
RHEL4的系统,在编译linsmith-0.99.3的时候出现错误,以下是执行“make”之后出错的提示:
......
chart.o(.text+0xa3): In function `update_chart_z0':
/usr/include/stdlib.h:393: undefined reference to `gtk_combo_box_get_active_text'
collect2: ld returned 1 exit status
make[2]: *** [linsmith] Error 1
make[2]: Leaving directory `/tmp/linsmith-0.99.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/linsmith-0.99.1'
make: *** [all] Error 2

请问这要怎么解决?谢谢。
发表于 2007-8-21 19:03:05 | 显示全部楼层
不熟识 RHEL4,也不懂 linsmith,貌似有 gtk 的依赖,会否系统里欠缺什麽 libgtk2.0-0-dev (RHEL 可能叫别的名字)之类的东西?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-22 22:23:47 | 显示全部楼层
Post by d00m3d
不熟识 RHEL4,也不懂 linsmith,貌似有 gtk 的依赖,会否系统里欠缺什麽 libgtk2.0-0-dev (RHEL 可能叫别的名字)之类的东西?

呵呵,谢谢d00m3d,跟软件开发者联系了,软件要求gtk+在2.6以上,而rhel4的只有2.4。
今天装了gtk+2.8,但是因为担心对系统的其他软件造成兼容性问题,所以我没有覆盖系统原来的文件,而是选择装在了/newlib里面,现在有个问题就是我每次必须现在终端里面运行:
LD_LIBRARY_PATH="/newlib/lib"
PATH="/newlib/binPATH"
export LD_LIBRARY_PATH PATH
这三条指令之后才能运行linsmith,请问我应该怎么样写一个批处理的文件,一次性将这三条指令执行了?谢谢。
回复 支持 反对

使用道具 举报

发表于 2007-8-22 22:35:47 | 显示全部楼层
把 /newlib/lib 加到你的 /etc/ld.so.conf 里

PATH 嘛,这个简单之极,加到你的 profile 就行,请善用搜索
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-23 10:18:54 | 显示全部楼层
Post by d00m3d
把 /newlib/lib 加到你的 /etc/ld.so.conf 里

PATH 嘛,这个简单之极,加到你的 profile 就行,请善用搜索


呵呵,谢谢。用批处理文件解决了。
如果我将/newlib/lib添加到ld.so.conf里面,会对其他需要调用gtk+-2.x的程序造成影响吗?因为之前的2.4版本还在/usr/lib里面,那如果我再添加了/newlib/lib,会不会因两个gtk+的版本不同造成混乱?

如果通过修改profile,那么就相当于设为全局变量了,对吗?但是我不想这样,而只是想就这个linsmith启动的时候调用gtk+-2.8,而其他程序则还是按照原来的,调用系统的gtk+2.4。
回复 支持 反对

使用道具 举报

发表于 2007-8-23 19:11:55 | 显示全部楼层
不清楚你的 newlib 为何物,若然能用脚本解决了就让它干好了,自古有话:"If it doesn't break, don't fix it!"
回复 支持 反对

使用道具 举报

发表于 2007-8-24 09:29:37 | 显示全部楼层
Post by dpx4086
呵呵,谢谢。用批处理文件解决了。
如果我将/newlib/lib添加到ld.so.conf里面,会对其他需要调用gtk+-2.x的程序造成影响吗?因为之前的2.4版本还在/usr/lib里面,那如果我再添加了/newlib/lib,会不会因两个gtk+的版本不同造成混乱?

如果通过修改profile,那么就相当于设为全局变量了,对吗?但是我不想这样,而只是想就这个linsmith启动的时候调用gtk+-2.8,而其他程序则还是按照原来的,调用系统的gtk+2.4。

你可以在启动linsmith的时候,设置环境变量LD_LIBRARY_PATH,把/newlib/lib设到最前面就好了。这样,对其他程序包不会有什么影响了。

理论上讲,其他程序也是可以使用gtk+-2.8的,因为gtk+2.0系列是保持ABI,API向后兼容的,所以,能使用旧版本gtk+2的,应该是可以使用新版本的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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