
DelFEM の開発環境の整備2009年12月23日 | |
バージョンDelFEM 1.1.11 注意 1.1.12 で以下の作業が必要でなくなりました。 はじめにサンプルのコンパイル環境では開発がしにくいので、開発環境を整備してみた。 環境MinGW, Linux ライブラリの作成とインストールライブラリは Lib の中の libdfm_*.a のようだが、リンクがめんどくさいので 1 つにまとめて、/mingw/lib に入れる。 cd DelFEM1.1.11/Lib ar r libdfm.a *.o ranlib libdfm.a cp libdfm.a /mingw/lib インクルードファイルのインストールインクルードファイルとしては Src の中のヘッダーファイルが必要なようなので、それらを /mingw/include に入れる。 cd DelFEM1.1.11/src mkdir -p /mingw/include/DelFEM/Cad mkdir -p /mingw/include/DelFEM/Com mkdir -p /mingw/include/DelFEM/Fem/Eqn mkdir -p /mingw/include/DelFEM/Fem/Field mkdir -p /mingw/include/DelFEM/Fem/LS mkdir -p /mingw/include/DelFEM/LsSol mkdir -p /mingw/include/DelFEM/MatVec mkdir -p /mingw/include/DelFEM/Msh cp Cad/*.h /mingw/include/DelFEM/Cad cp Com/*.h /mingw/include/DelFEM/Com cp Fem/Eqn/*.h /mingw/include/DelFEM/Fem/Eqn cp Fem/Field/*.h /mingw/include/DelFEM/Fem/Field cp Fem/LS/*.h /mingw/include/DelFEM/Fem/LS cp LsSol/*.h /mingw/include/DelFEM/LsSol cp MatVec/*.h /mingw/include/DelFEM/MatVec cp Msh/*.h /mingw/include/DelFEM/Msh インクルードファイルの指定サンプルの fem_view_Solid3D をコンパイルすることにして、その中のインクルードファイルの指定部分を書き換える。 #include "../../src/Com/Camera.h" #include "../../src/Cad/CadObj2D.h" #include "../../src/Msh/Mesh3D.h" #include "../../src/Fem/Eqn/EqnObj_Solid.h" #include "../../src/Fem/Field/Field.h" #include "../../src/Fem/Field/FieldWorld.h" #include "../../src/Fem/Field/DrawerField.h"の部分を #include <Com/Camera.h> #include <Cad/CadObj2D.h> #include <Msh/Mesh3D.h> #include <Fem/Eqn/EqnObj_Solid.h> #include <Fem/Field/Field.h> #include <Fem/Field/FieldWorld.h> #include <Fem/Field/DrawerField.h> コンパイルたとえば、fem_view_Solid3D をコンパイル。 g++ -o fem_view_Solid3D fem_view_Solid3D.cpp -ldfm -lglut32 -lglu32 -lopengl32 まとめ以上の作業をバージョンアップごとにやるのもめんどうなので、スクリプトを書いた。 install.sh LIBDIR=/mingw/lib INCLUDEDIR=/mingw/include/DelFEM cd Lib ar r libdfm.a *.o ranlib libdfm.a cp libdfm.a $LIBDIR cd .. mkdir -p $INCLUDEDIR/Cad mkdir -p $INCLUDEDIR/Com mkdir -p $INCLUDEDIR/Fem/Eqn mkdir -p $INCLUDEDIR/Fem/Field mkdir -p $INCLUDEDIR/Fem/LS mkdir -p $INCLUDEDIR/LsSol mkdir -p $INCLUDEDIR/MatVec mkdir -p $INCLUDEDIR/Msh cd src cp Cad/*.h $INCLUDEDIR/Cad cp Com/*.h $INCLUDEDIR/Com cp Fem/Eqn/*.h $INCLUDEDIR/Fem/Eqn cp Fem/Field/*.h $INCLUDEDIR/Fem/Field cp Fem/LS/*.h $INCLUDEDIR/Fem/LS cp LsSol/*.h $INCLUDEDIR/LsSol cp MatVec/*.h $INCLUDEDIR/MatVec cp Msh/*.h $INCLUDEDIR/Msh cd .. これを DelFEM のディレクトリに入れて実行すればよい。 $ mv install.sh DelFEM1.1.11 $ cd DelFEMA1.1.11 $ sh install.sh また、コンパイル用に Makefile を書いた (ここでは fem_view_Solid3D 用)。 Makefile CXX = g++ CXXFLAGS = -Wall -O2 LDFLAGS = INCLUDES = LIBS = -ldfm -lglut32 -lglu32 -lopengl32 TARGET = fem_view_Solid3D.exe OBJS = fem_view_Solid3D.o all: $(TARGET) $(TARGET): $(OBJS) $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) clean: -rm -f $(OBJS) .cpp.o: $(CXX) $(CXXFLAGS) $(INCLUDES) -c $< 別のプログラムで使うには、TARGET, OBJS の部分を書き換える。 LinuxLinux の場合、install.sh は以下のように書き換えた。 LIBDIR = /usr/local/lib INCLUDEDIR = /usr/local/include 注意: システムによっては /usr/local/lib, /usr/local/include のパスが通っていないかも。 Makefile は以下のように書き換えた。 LIBS = -ldfm -lglut -lGL -lGLU TARGET = fem_view_Solid3D | |
| PENGUINITIS Yuu Kasuga | |