とある論文を読んでいていて、自分も使いたいって思ってインストールしてみた。
記事にしたのはmacOSにインストールする方法ですが、Linuxに入れたときでも基本変わらな買ったと思います(Windowsはわからないです)。
ダウンロード:(LINUX,WINDOWS,MACOSを選べる)
https://omnetpp.org/software/2018/06/29/omnet-5-4-1-released
公式ドキュメント
https://omnetpp.org/documentation/
#インストール方法
公式ドキュメントの一覧から*Install Guide (pdf)*を選択
Chapter3 からがmacOSへの導入方法(macOS 10.12を対象にしているが、導入環境は10.14.3)
OMNeT++ではシミュレーションをC++で書かくけどJavaのランタイムとかを入れる必要があるらしい(OMNeT++自体はechlipsが元になっているからだと思う)
指示通りJavaRuntimeとJava Runtime Environmentをインストール
またコマンドラインツールもアップルの公式サイトから手に入れた
次にデバッグのためにgdbをbrew installする必要がある(mac以外では普通にapt installだった気がする)
ちょっと面倒くさいけど署名も設定しなければならないみたい
macなら「lunchpad -> その他 -> キーチェーンアクセス」そして、メニューバーから「キーチェーンアクセス-> 証明書アシスタント -> 証明書作成」を選択
こんな感じで入力してあとはひたすら「続ける」を連打する(途中はの入力は無視していいの?)
証明書が保存できたらキーチェーンアクセスは閉じてターミナルを起動し以下のコマンドを実行(gdb-certの部分は自分で入力した内容によっては変えてください)
$sudo codesign -s gdb-cert /usr/local/bin/gdb
下準備が終わったのでいよいよOMNeT++本体をダウンロード
好きなディレクトリでで以下のコマンドを実行(もち、ダウンロードしたファイルも同じディレクトリで)
$tar zxvf omnetpp-5.4.1-src-macosx.tgz
ここからは環境設定(毎回この手の環境設定ではPATHを通すけど、実は意味がわかってない.教えて強い人!!)
以下のコマンドをつらつらと打っていく
$ cd omnetpp-5.4.1
$ . setenv
$ touch ~/.bashrc
$ open -e ~/.bashrc
.bashcrファイルに次の二行を追加(個人的な感想だけどbash_profileに書き込んでもいいじゃないの? 私はそうしてます)
export PATH=\$HOME/omnetpp-5.4.1/bin:\$HOME/omnetpp-5.4.1/tools/macosx/bin:\$PATH
export QT_PLUGIN_PATH=\$HOME/omnetpp-5.4.1/tools/macosx/plugins
ちなみにこれ、解凍した場所によっては$HOME/解凍した場所/omnetpp-X.X.Xにする必要がある。
今度は設定をいじる必要があるみたい
configureスクリプトがインストールされているソフトウェアとシステムの設定を検出してくれるみたい。
結果はMakefile.incファイルに自動で書き込まれる
$ ./configure
スクリプトが走り終わったら最後にビルドするみたい(今更makeコマンドの意味を知ったけど、CやC++で書かれたプログラムをMakefileの設定通りにコンパイルしてくれる賢い子みたい.三流以下のエンジニア並の知識しかねえ)
$ make
#サンプル実行
結構長いビルドが終わったら今度はサンプルを動かしてみてってことらしい
$ cd samples/aloha
$ ./aloha
最後はIDEをコマンドで開いて起動することを確認
OMNeT++はEclipse(Javaで書かれているIDE)をベースにしたSimulationIDEみたいで、最初の方でJava RuntimeをインストールしたのはこのIDEを動かすためなのかなぁ
$ omnetpp
ここで詰んだ,エラー吐いてIDEが起動しない
この記事を見る限り、OMNet++はjava9以上だと相性が悪いのかも
https://stackoverflow.com/questions/47039187/omnet-5-2-mac-installation-error
sudo rm -rf /Library/Java/JavaVirtualMachines/*****
で最新のJava環境を消してJava8(java10でも可?)にしたらIDEが動いた。
Workspaceを選べと言われる(デフォルトではsampleが指定されてるはず)
多分こんな画面を開くことができたらいいみたい。
次回からはチュートリアルをやってみます。
2019/05/14 加筆
どうもOMNeT++はMacとは相性が悪いらしく、gdbデバックがあんまりうまくできない