memo/root/クラスの追加 をテンプレートにして作成
ページ一覧
編集メニュー >
新規作成
編集
コピー
名前の変更
アップロード
添付ファイル一覧
バックアップ
開始行:
* rootへのクラスの追加 [#w4d473ad]
ライブラリ(*.so)をロードしてクラスをルートに追加するた...
微妙にはまったので。
** ヘッダファイル(AnapawMode.hh) [#j2037835]
#ifndef __ANAPAWMODE_HH__
#define __ANAPAWMODE_HH__
#include <TObject.h>
class AnapawMode : public TObject
{
public:
AnapawMode();
~AnapawMode();
private:
void Compro();
void Exe_command(char* line);
ClassDef(AnapawMode,0)
};
#endif
追加するクラスはTObjectを継承していなければならないらしい...
** AnapawMode.cc [#gfa28aa3]
#include "AnapawMode.hh"
#include "TROOT.h"
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <readline/readline.h>
#include <readline/history.h>
ClassImp(AnapawMode)
//------------------------------------------------------...
using namespace std;
AnapawMode::AnapawMode(){
cout<<"AnapawMode START"<<endl;
Compro();
}
AnapawMode::~AnapawMode(){
cout<<"AnapawMode STOP"<<endl;
}
//------------------------------------------------------...
void AnapawMode::Compro()
...
とこんな感じで書く。ClassImp(AnapawMode)はどこに書いても...
** AnapawModeLinkDef.hh [#qd9657ee]
以下のようなファイルを用意しておく。
#ifdef __CINT__
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C++ class AnapawMode;
#endif
意味は全然わかっていませんよ。最後の ... class AnapawMode...
** Makefile [#g7946cb3]
CPP=g++
CLASSNAME = AnapawMode
OBJS= AnapawMode.o
#-------------------------------------------------------...
# for ROOT class dictionary
OBJS += $(CLASSNAME)LinkDef.o
ROOT_CFLAGS :=$(shell root-config --cflags)
ROOT_LIBS :=$(shell root-config --glibs)
READLINE= -lreadline -lcurses
CPPFLAGS += $(ROOT_CFLAGS)
LDFLAGS += $(ROOT_LIBS) $(READLINE)
#-------------------------------------------------------...
all: dict $(OBJS) lib
dict:
rootcint -f $(CLASSNAME)LinkDef.cc \
-c $(CLASSNAME).hh $(CLASSNAME)LinkDef.hh
lib: $(OBJS)
gcc -shared -o lib$(CLASSNAME).so *.o
clean:
rm -f *~ *.o *.so
.cc.o:
$(CPP) $(CPPFLAGS) -c $<
READLINEはAnapawModeで使っているので書いてありますが、普...
終了行:
* rootへのクラスの追加 [#w4d473ad]
ライブラリ(*.so)をロードしてクラスをルートに追加するた...
微妙にはまったので。
** ヘッダファイル(AnapawMode.hh) [#j2037835]
#ifndef __ANAPAWMODE_HH__
#define __ANAPAWMODE_HH__
#include <TObject.h>
class AnapawMode : public TObject
{
public:
AnapawMode();
~AnapawMode();
private:
void Compro();
void Exe_command(char* line);
ClassDef(AnapawMode,0)
};
#endif
追加するクラスはTObjectを継承していなければならないらしい...
** AnapawMode.cc [#gfa28aa3]
#include "AnapawMode.hh"
#include "TROOT.h"
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <readline/readline.h>
#include <readline/history.h>
ClassImp(AnapawMode)
//------------------------------------------------------...
using namespace std;
AnapawMode::AnapawMode(){
cout<<"AnapawMode START"<<endl;
Compro();
}
AnapawMode::~AnapawMode(){
cout<<"AnapawMode STOP"<<endl;
}
//------------------------------------------------------...
void AnapawMode::Compro()
...
とこんな感じで書く。ClassImp(AnapawMode)はどこに書いても...
** AnapawModeLinkDef.hh [#qd9657ee]
以下のようなファイルを用意しておく。
#ifdef __CINT__
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C++ class AnapawMode;
#endif
意味は全然わかっていませんよ。最後の ... class AnapawMode...
** Makefile [#g7946cb3]
CPP=g++
CLASSNAME = AnapawMode
OBJS= AnapawMode.o
#-------------------------------------------------------...
# for ROOT class dictionary
OBJS += $(CLASSNAME)LinkDef.o
ROOT_CFLAGS :=$(shell root-config --cflags)
ROOT_LIBS :=$(shell root-config --glibs)
READLINE= -lreadline -lcurses
CPPFLAGS += $(ROOT_CFLAGS)
LDFLAGS += $(ROOT_LIBS) $(READLINE)
#-------------------------------------------------------...
all: dict $(OBJS) lib
dict:
rootcint -f $(CLASSNAME)LinkDef.cc \
-c $(CLASSNAME).hh $(CLASSNAME)LinkDef.hh
lib: $(OBJS)
gcc -shared -o lib$(CLASSNAME).so *.o
clean:
rm -f *~ *.o *.so
.cc.o:
$(CPP) $(CPPFLAGS) -c $<
READLINEはAnapawModeで使っているので書いてありますが、普...
ページ名:
and
or
Menu
kondowiki
memo
exp
link
#lsx
Counter: 0, today: 0, yesterday: 0