http://tog.acm.org/resources/SPD/
これの実行ファイルを作成するのに試してみました。
以下、Windowsでの作業です。
MinGWをインストールする。
最新バージョンはインストール時にmakeも含まれているようで楽かも。
環境パスも設定します。
さてさて、コンパイルの作業をします。
gccのオプションは以下を参考にしました。
http://www.geocities.jp/woodwood77777/gcc.htm
makefile.dosを以下、書き換え
CC =gcc
CFLAGS =-O2
以下を実行します。
mingw32-make -f makefile.dos
libinf.cの32行目あたりで
"initializer element is not constant" と出て止まったら
変更前 FILE *gOutfile = stdout;
変更後 FILE *gOutfile;
以下を実行します。
mingw32-make -f makefile.dos
mingw/lib/libmingw32.a(main.o):main.c.text+0x104): undefined
reference to `WinMain@16'
エラーメッセージ
このあたり、エラーがでますが、くりかえしてみる。
mingw32-make -f makefile.dos
ちょっとうろ覚え、
CFLAGS =-mx
と変更して
mingw32-make -f makefile.dos
をくりかえしてみる。
以上、コンパイルのみ実行してリンクは後で行う。
以下のようなバッチファイルを作ってしまう。
作成したオブジェクトファイルをリンクさせる。
gcc -o balls.exe balls.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
以下はバッチファイル
gcc -o balls.exe balls.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o gears.exe gears.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o mount.exe mount.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o rings.exe rings.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o teapot.exe teapot.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o tetra.exe tetra.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o tree.exe tree.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o readdxf.exe readdxf.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o readnff.exe readnff.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o readobj.exe readobj.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o sample.exe sample.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o lattice.exe lattice.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o shells.exe shells.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o jacks.exe jacks.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o sombrero.exe sombrero.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o nurbtst.exe nurbtst.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
できあがった実行ファイルがいくつかあります。
balls.exe
gears.exe
jacks.exe
lattice.exe
mount.exe
nurbtst.exe
rings.exe
sample.exe
shells.exe
sombrero.exe
teapot.exe
tetra.exe
tree.exe
balls.exe >balls.nff
でnffを出力します。
後は、XRT rendererでレンダリングしました。
balls.nff
lattice.nff
jacks.nff、これってケッソン先生のところで見たAOしてるブツのオリジナルになるのでしょうか。
いろいろと試してみたくなりました。
ありがとうございます。
- -
- -