LinuxSir.cn,穿越时空的Linuxsir!

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

请教一个库的问题

[复制链接]
发表于 2003-5-20 10:20:36 | 显示全部楼层 |阅读模式
在linux下安装root(画图)软件后,修改.bashrc(用b shell),内容如下
ROOTSYS=/usr/local/root
PATH=$ROOTSYS/bin:/usr/local/netscape/:/usr/local/sbin:/sbinPATH
LD_LIBRARY_PATH=$ROOTSYS/libLD_LIBRARY_PATH
DYLD_LIBRARY_PATH=$ROOTSYS/libDYLD_LIBRARY_PATH
export PATH ROOTSYS PGPLOT_DIR LD_LIBRARY_PATH DYLD_LIBRARY_PATH
然后root软件可用,但不能引用root的库函数。
例如:编个程序要用到root的库函数
设置Makefile文件:
dtime : dtime.o
       $(LD) $(OutPutOpt) $@ $(LIBS) $(GLIBS)  $^
其中
LD = g++ ;OutPutOpt = -o ;LIBS  = $(ROOTLIBS) $(SYSLIBS);
GLIBS  = $(ROOTGLIBS) $(SYSLIBS);
ROOTLIBS     := $(shell root-config --libs);
ROOTGLIBS    := $(shell root-config --glibs);
make后,出错:
dtime.o(.text+0xc6d): In function `main':
: undefined reference to `TApplication::~TApplication [in-charge]()'
collect2: ld returned 1 exit status
make: *** [dtime] Error 1
(TApplication是root的库函数)
请问要怎样改正?谢谢!
发表于 2003-5-20 10:42:55 | 显示全部楼层
你的root库文件是安装在/usr/locale/root目录下的吗?
 楼主| 发表于 2003-5-20 14:21:25 | 显示全部楼层
是的,在/usr/locl/root/include、和/usr/local/root/lib。
发表于 2003-5-20 18:44:28 | 显示全部楼层
: undefined reference to `TApplication::~TApplication [in-charge]()'

这个函数在哪里定义
如果是在库中那么要link的指定的库
如果是在c文件中要指定link .c生成的.o
 楼主| 发表于 2003-5-20 20:32:30 | 显示全部楼层
那个函数在库中有定义,在Makefile文件中,$(GLIBS)联接到库,
GLIBS = $(ROOTGLIBS) $(SYSLIBS);
ROOTLIBS := $(shell root-config --libs);
ROOTGLIBS := $(shell root-config --glibs);
可能是这几句的问题,但我看不懂,请指教?
发表于 2003-5-20 20:57:11 | 显示全部楼层
你试着运行root-config --libs,有什么结果?
 楼主| 发表于 2003-5-20 21:20:41 | 显示全部楼层
结果显示
bash: root-config: command not found
发表于 2003-5-20 21:53:57 | 显示全部楼层
可能问题出在这里了。这种软件要象gtk编程一个,用一个gtk-config之类的东西来提取头文件与库文件的路径。你找找在/usr/local/root下有没有root-config这个文件。
 楼主| 发表于 2003-5-21 10:11:00 | 显示全部楼层
只有一个configure,没有root-config!?
发表于 2003-5-21 10:57:07 | 显示全部楼层
用find / -name root-config -print看看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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