2010年01月16日

SystemC-2.2 on Ubuntu 9.10

またまた、インストールハック。

Ubuntu 9.10にSystemC-2.2.0を入れようとする。

こちらを参考にしてコンパイルすると、
g++ -I. -I. -I../../../../src/sysc/utils -I../../../../src -Wall -DSC_INCLUDE_FX -O3 -c -o sc_utils_ids.o `test -f '../../../../src/sysc/utils/sc_utils_ids.cpp' || echo '../../../../src/sysc/utils/'`../../../../src/sysc/utils/sc_utils_ids.cpp
../../../../src/sysc/utils/sc_utils_ids.cpp: In function ‘int sc_core::initialize()’:
../../../../src/sysc/utils/sc_utils_ids.cpp:110: error: ‘getenv’ is not a member of ‘std’
../../../../src/sysc/utils/sc_utils_ids.cpp:111: error: ‘strcmp’ was not declared in this scope
../../../../src/sysc/utils/sc_utils_ids.cpp: At global scope:
../../../../src/sysc/utils/sc_utils_ids.cpp:119: warning: ‘sc_core::forty_two’ defined but not used
make[3]: *** [sc_utils_ids.o] エラー 1
make[3]: *** 未完了のジョブを待っています....
make[3]: ディレクトリ `/home/kiyoto/Packages/SystemC/systemc-2.2.0/objdir/src/sysc/utils' から出ます
make[2]: *** [all-recursive] エラー 1
make[2]: ディレクトリ `/home/kiyoto/Packages/SystemC/systemc-2.2.0/objdir/src/sysc' から出ます
make[1]: *** [all-recursive] エラー 1
make[1]: ディレクトリ `/home/kiyoto/Packages/SystemC/systemc-2.2.0/objdir/src' から出ます
make: *** [all-recursive] エラー 1

みたいな感じでエラーで止まる。

対処方法は、↓のComment #7。
http://forums.fedoraforum.org/showthread.php?t=199153

すなわち、
$ diff -c ./src/sysc/utils/sc_utils_ids.cpp ./src/sysc/utils/sc_utils_ids.cpp.orig
*** ./src/sysc/utils/sc_utils_ids.cpp 2010-01-16 20:17:15.001912357 +0900
--- ./src/sysc/utils/sc_utils_ids.cpp.orig 2010-01-16 20:16:44.761908677 +0900
***************
*** 58,65 ****
// the source.
//

- #include "string.h"
- #include "cstdlib"
#include "sysc/utils/sc_report.h"

--- 58,63 ----


これでOK。



タグ:ubuntu SystemC
posted by kyt at 20:18| Comment(0) | TrackBack(0) | プログラミング | このブログの読者になる | 更新情報をチェックする

2009年12月20日

Open Dynamics Engine (ODE) on Ubuntu 9.04

フリーの動力学シミュレータであるOpen Dynamics Engineを入れたときのメモ

前準備


・OpenGLライブラリを入れる
$ sudo apt-get install freeglut3 freeglut3-dbg freeglut3-dev


ダウンロード


SouceForgeからtarballをダウンロード


コンパイル


・configureを実行する前に、autogen.shを実行しておくところがポイント(これを忘れて、drawstuffのコンパイルでハマった)
$ tar xvzf ode-0.11.1.tar.gz
$ cd ode-0.11.1
$ ./autogen.sh
$ ./configure --enable-double-precision
$ make


確認


・ode/demoディレクトリ以下に、デモプログラムがあるので、それを実行してみる。
$ cd ode/demo
$ ./demo_buggy


インストール


・ODEライブラリはインストールされるが、drawstuffはインストールされないので手動で入れた
$ cd ../../
$ sudo make install
$ sudo cp ./drawstuff/src/.libs/libdrawstuff.* /usr/local/lib/
$ sudo mkdir /usr/local/include/drawstuff
$ sudo cp ./include/drawstuff/*.h /usr/local/include/drawstuff/
$ sudo mkdir /usr/local/share/drawstuff
$ sudo cp -r drawstuff/textures /usr/local/share/drawstuff/


自前ソースでのコンパイル


・Makefileはこんな感じ
# Makefile

program = TestODE
objs = src/sample1.o

CC = gcc
CFLAGS = -g -Wall
LDFLAGS = -L/usr/local/lib -ldrawstuff -lode -lglut -lGLU -lGL

.SUFFIXES: .c .o
.SUFFIXES: .cpp .o


all: $(program)

$(program): $(objs)
$(CC) -o $(program) $^ $(LDFLAGS)

.PHONY: clean
clean:
$(RM) $(program) $(objs)

posted by kyt at 13:53| Comment(0) | TrackBack(0) | プログラミング | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。