===== アプリケーション =====
==== Makefile メモ ====
* リンク
* Makefile の書き方 (C 言語) — WTOPIA v1.0 documentation http://www.ie.u-ryukyu.ac.jp/~e085739/c.makefile.tuts.html
==== デバッグメモ ====
=== include ファイルと lib ファイルのバージョンが違う場合 ===
* Include する root のバージョンが違うと、以下のようなメッセージが出た。 [koba@kr h2root_smp_on_kr]$ ./h2root
center -600.000000
Error in : FFTW[.so | .dll | .dylib | .sl | .dl | .a] does not exist in /home/koba/cern/root_v5.34.36/lib/root:/home/koba/cern/root_v5.32.04/lib/root:/root:/home/koba/cern/root_v5.32.04/lib/root:/home/koba/cern/anaroot_v4.5.15/anaroot/lib:/home/koba/cern/anaroot_v4.5.15/anaroot/lib:.:/home/koba/cern/root_v5.34.36/lib/root::/home/koba/cern/root_v5.34.36/lib/root/cint/cint/stl
Error in : handler not found
*** glibc detected *** ./h2root: corrupted double-linked list: 0x000000000275a570 ***
======= Backtrace: =========
/lib64/libc.so.6[0x33ef075dee]
/lib64/libc.so.6[0x33ef078ff6]
/lib64/libc.so.6(exit+0x115)[0x33ef0359c5]
/lib64/libc.so.6(__libc_start_main+0x104)[0x33ef01ed24]
./h2root[0x400889]
======= Memory map: ========
00400000-00401000 r-xp 00000000 fd:02 6838699 /home/koba/Dropbox/works/root/h2root_smp_on_kr/h2root
* h2root.cc
#include
#include "TH1.h"
int main(int argc, char **argv)
{
TH1F *h1;
h1 = new TH1F("aa","aa",1200,-600.,600.);
printf("center %f\n",h1->GetBinCenter(10));
h1->Fill(1.0,1.0);
return 0;
}
* Makefile TARGETS = h2root
ROOTCFLAGS = -O2 -pipe -m64 -Wshadow -Wall -W -Woverloaded-virtual -fPIC -I/home/koba/cern/root_v5.32.04/root/include -DR__HAVE_CONFIG -pthread
ROOTLFLAGS = -m64 -O2 -Wl,--no-undefined -Wl,--as-needed
ROOTLIBS = -L/home/koba/cern/root_v5.34.36/lib/root -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -pthread -lm -ldl -rdynamic /home/koba/cern/root_v5.34.36/lib/root/libminicern.so /usr/lib/gcc/x86_64-redhat-linux/4.4.7/libgfortran.so /usr/lib/gcc/x86_64-redhat-linux/4.4.7/libgfortranbegin.a
all: $(TARGETS)
h2root: h2root.o
g++ $(ROOTLFLAGS) -o $@ $< $(ROOTLIBS)
.cc.o:
g++ $(ROOTCFLAGS) -c $<
.PHONY : clean
clean:
rm -rf *.o