LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: 大森林

请教一个库的问题

[复制链接]
 楼主| 发表于 2003-5-21 11:54:51 | 显示全部楼层
老大,找到了,在/usr/local/root/bin/下,运行
# root-config
Usage: root-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--new] [--nonew] [--libs] [--glibs] [--libdir] [--incdir] [--noauxcflags] [--noauxlibs] [--noldflags] [--has-<feature>] [--arch] [--help]
# root-config --libdir
/usr/local/root/lib
#root-config --libs
-L/usr/local/root/lib -lCore -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lpthread -lm -ldl -rdynamic
# root-config --glibs
-L/usr/local/root/lib -lCore -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lGui -lpthread -lm -ldl -rdynamic
请问接下来怎么办?
发表于 2003-5-21 13:11:08 | 显示全部楼层
好办,把/usr/local/root/bin加入到PATH中,就可以在别的地方执行root-config命令了。
 楼主| 发表于 2003-5-21 15:32:41 | 显示全部楼层
/usr/local/root/bin就在PATH里面,Makefile是针对应用root写的,
内容如下:
# Makefile for the ROOT test programs.
# This Makefile shows nicely how to compile and link applications
# using the ROOT libraries on all supported platforms.
#
# Copyright (c) 2000 Rene Brun and Fons Rademakers
#
# Author: Fons Rademakers, 29/2/2000

#ARCH          = @architecture@

CXX           =
#CCU           = ccupc
#CCU           = ccu99
CCU           = ccu
ObjSuf        = o
SrcSuf        = cxx
ExeSuf        =
DllSuf        = so
OutPutOpt     = -o

ROOTCFLAGS   := $(shell root-config --cflags)
ROOTLIBS     := $(shell root-config --libs)
ROOTGLIBS    := $(shell root-config --glibs)

# Linux with gcc 2.7.2.x
CXX           = g++
CXXFLAGS      = -Wall -fPIC
LD            = g++
LDFLAGS       = -O -c
SOFLAGS       = -shared

CXXFLAGS     += $(ROOTCFLAGS)
LIBS          = $(ROOTLIBS) $(SYSLIBS)
GLIBS         = $(ROOTGLIBS) $(SYSLIBS)

#------------------------------------------------------------------------------


TARGET          = dtime

dtime : dtime.o
        $(LD) $(OutPutOpt) $@ $(LIBS) $(GLIBS)  $^

dtime.o : dtime.cxx
        $(LD) $(LDFLAGS) $< $(CXXFLAGS)

clean:
        rm -fr *.o *~ $(TARGET)

请老大指教?
发表于 2003-5-21 16:09:17 | 显示全部楼层
ROOTCFLAGS := $(shell root-config --cflags)
ROOTLIBS := $(shell root-config --libs)
ROOTGLIBS := $(shell root-config --glibs)
你把这三行等号右边的部分换成对应的root-config执行结果看看。
 楼主| 发表于 2003-5-21 16:52:50 | 显示全部楼层
请问要怎么改?
若这样ROOTCFLAGS := root-config --cflags 不行。
你看一下它的编译(未改之前):
g++ -o  dtime -L/usr/local/root/lib -lCore -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lpthread -lm -ldl -rdynamic  -L/usr/local/root/lib -lCore -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lGui -lpthread -lm -ldl -rdynamic   dtime.o
它能找到/usr/local/root/lib,但那个函数在/usr/local/root/include中,原因是不是在这?
怎样让它能找到/include?
 楼主| 发表于 2003-5-21 17:00:00 | 显示全部楼层
换成对应的root-config的执行结果后make显示
Makefile:22: *** unterminated variable reference.  Stop.
发表于 2003-5-21 17:14:43 | 显示全部楼层
最初由 大森林 发表
请问要怎么改?
若这样ROOTCFLAGS := root-config --cflags 不行。
你看一下它的编译(未改之前):
g++ -o  dtime -L/usr/local/root/lib -lCore -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lpthread -lm -ldl -rdynamic  -L/usr/local/root/lib -lCore -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lGui -lpthread -lm -ldl -rdynamic   dtime.o
它能找到/usr/local/root/lib,但那个函数在/usr/local/root/include中,原因是不是在这?
怎样让它能找到/include?

早点把这个贴出来多好,我还以为是root-config执行不正常呢。
从执行的编译指令看,没有提供相应的头文件位置,你把
ROOTCFLAGS := $(shell root-config --cflags)
改成
ROOTCFLAGS := $(shell root-config --cflags --incdir)
看看。
 楼主| 发表于 2003-5-22 09:20:48 | 显示全部楼层

老大,还不行

因为ROOTCFLAGS在将.cxx编成.o用到,而这是对的,如下
g++ -O -c dtime.cxx -Wall -fPIC -D_REENTRANT -I/usr/local/root/include
dtime.o : dtime.cxx
$(LD) $(LDFLAGS) $< $(CXXFLAGS)
而出错是这一句
dtime : dtime.o
$(LD) $(OutPutOpt) $@ $(LIBS) $(GLIBS) $^
在以前我装redhat7.3的时候,用同样的程序能编译通过,换成了9.0以后,就有这个问题了,是不是9.0的什么设置不对呀?
发表于 2003-5-22 10:04:20 | 显示全部楼层
我感觉还是找不到需要的库文件。在你的/usr/local/root/lib下有什么文件?
 楼主| 发表于 2003-5-22 10:53:29 | 显示全部楼层
有这些
libCint.so       libGX11.so         libMinuit.so      libSRPAuth.so
libCore.so       libGX11TTF.so      libMySQL.so       libStar.so
libEGPythia6.so  libHbook.so          libNew.so         libThread.so
libEGPythia.so   libHistPainter.so      libPhysics.so     libTreePlayer.so
libEG.so         libHist.so          libPostscript.so  libTree.so
libGpad.so       libHtml.so         libProof.so       libTreeViewer.so
libGraf3d.so     libKrb5Auth.so     libRFIO.so        libX3d.so
libGraf.so       libMatrix.so       libRGL.so
libGui.so        libMC.so           libRint.so
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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