1. 先作出OBJS檔,PALamPIplsPImns.o
COMPILE_CXX := $(CXX) -c $(PANTHER_CMACROS) $(INCLUDES_C:%=-I%) $(CXXFLAGS)
其中CXXFLAGS = -g -DHEP_SHORT_NAMES -DBELLE_SHORT_NAMES -DDSTXX_NOINLINE -DBELLE_TARGET_H=\"belle-i686-unknown-linux-g++.h\" -fPIC
其實是執行下列指令:
g++ -c -DFULLRECON_H=\"tables/fullrecon.h\" -DMCTYPE_H=\"tables/mctype.h\" -I/belle/belle/b20030807_1500/include -g -DHEP_SHORT_NAMES -DBELLE_SHORT_NAMES -DDSTXX_NOINLINE -DBELLE_TARGET_H=\"belle-i686-unknown-linux-g++.h\" -fPIC PALamPIplsPImns.cc
a .定義了2個Macro:
* FULLRECON_H="tables/fullrecon.h"
* MCTYPE_H="tables/mctype.h"
b. 環境變數 PANTHER_TABLE_DIR=/belle/belle/b20030807_1500/share/tables/
c. Header files的路徑
* /data/belle/belle/b20030807_1500/include/tables/fullrecon.h
* /data/belle/belle/b20030807_1500/include/tables/mctype.h
* /data/belle/belle/b20030807_1500/src/config/belle-i686-unknown-linux-g++.h
d. 再定義Macro
* DHEP_SHORT_NAMES
* BELLE_SHORT_NAMES
* DSTXX_NOINLINE
* BELLE_TARGET_H="belle-i686-unknown-linux-g++.h"
2. 然後再作出so檔
g++ -o PALamPIplsPImns.so -shared -Wl,-export-dynamic PALamPIplsPImns.o -L/belle/belle/b20030807_1500/i686-unknown-linux/opt/lib/so -ltuple -lparticle -lmdst -lkid -lip -lCLHEP -lcrypt -L/belle/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3 -L/belle/local/lib -lg2c -lm -lgcc -lgcc
a. /belle/local/lib/gcc-lib/i686-pc-linux-gnu/3.0.4/
b. -lCLHEP是放在
/belle/belle/b20030807_1500/i686-unknown-linux/opt/lib/so/libCLHEP.so
[samuel@mwang Skim]$ ls /belle/local/lib/gcc-lib/i686-pc-linux-gnu/3.0.4/ <===存在著g2c
crtendS.o crtbegin.o libg2c.a libobjc.a jc1 collect2 cc1 include
crtend.o specs libobjc.so.1.0.0 tradcpp0 f771 cc1plus libobjc.so.1
crtbeginS.o libgcc.a libobjc.la jvgenmain cpp0 cc1obj libobjc.so
[samuel@mwang Skim]$ ls /belle/local/lib <====
libgcc_s.so.1 libstdc++.a libgcj.a libgcjgc.la libzgcj.so libgcjgc.so.1
libsupc++.la libiberty.a libzgcj.so.0.0.0 libgcjgc.a libstdc++.so.3 libgcjgc.so
libsupc++.a libgcj.so.2.0.0 libzgcj.la libgcc_s.so libstdc++.so root
libstdc++.so.3.0.4 libgcj.la libzgcj.a gcc-lib libgcj.so.2
libstdc++.la libgcj.spec libgcjgc.so.1.0.1 libzgcj.so.0 libgcj.so
all:: $(OBJS)
$(LINK_CXX) -o $(MODULE) $(SOFLAGS) $(OBJS) $(LIBS) $(CLHEPLIB) $(CERNLIB) $(SYSLIB)
SOFLAGS
BELLE_TOP_DIR=/belle/belle/b20030807_1500
BELLE_RUN_DIR=$(BELLE_TOP_DIR)/i686-unknown-linux/opt/
$(CLHEPLIB) $(CERNLIB) $(SYSLIB)
SOFLAGS
BELLE_TOP_DIR=/belle/belle/b20030807_1500
BELLE_RUN_DIR=$(BELLE_TOP_DIR)/i686-unknown-linux/opt/
# posted by samuel @ 7:59 AM