セルフ開発環境(dev-img1.3, Nokaji)
先日試したzgcc34は環境をアンマウントすると動作しないので、dev_imgを試してみる。こちらのページの下の方にあるdev-img.binを入手、これだとQTのアプリも作れるみたい。
設定
- ~/.bashrcに以下を追加
export PATH=$PATH:/mnt/dev/bin:/mnt/dev/tmake/bin export TMAKEPATH=/mnt/dev/tmake/lib/qws/linux-sharp-g++ export TMP=/hdd3/tmp ←適当に空いてるエリアを使用
$ su # mkdir /mnt/dev # swapon /hdd3/swapfile # mount -o loop -t cramfs /hdd3/dev-img.bin /mnt/dev # cd /mnt/dev/bin # ./compiler_setup.sh -r /mnt/dev # exit $ gcc -v
hello.cのコンパイル
単純にコンパイルしたらエラー、stdio.hが無いと怒られた。どうやらincludeディレクトリが設定されていないみたい。incldeディレクトリを明示的にコンパイルしたらOK。ついでにいうとdev-imgをアンマウントしてもhelloは動作しました。-Iはエルでなくてアイ。
$ gcc -o hello -I/mnt/dev/include hello.c
hello.cppのコンパイル
こちらのサンプルプログラムをコンパイル。なおprogenやtmakeにはperlが必要なのでここからperlを入手。3つのソースファイルのあるディレクトリで以下を実行
$ progen -o hello.pro $ tmake -o Makefile hello.pro $ make
*.hが無いというエラー表示、Makefileの中をみるとINCPATHが$(QTDIR)/includeのみ、ちなみにQTDIR=/home/QtPalmtopです。以下の様にINCPATHに追加。progenやtmakeで勝手に追加させるようにするにはどうすれば良いのだろう?
INCPATH = -I$(QTDIR)/include -I/mnt/dev/include -I/mnt/dev/include/qt
念の為、make cleanしてから再度make、コンパイルできました!
./hello
で実行。これもdev-imgをアンマウントした環境でも動作しました。
Nokajiを試す
GUIでの開発環境であるNokajiを試してみます。
- S.O. さんのサイト「紺青」からNokajiを入手インストール。バージョンは0.1.11a
- LEO さんの「月記のページ」の連載(特にその4)を参考にhello.cをコンパイル。同じくNokaji上で実行するとHello Worldの後に“失敗”と表示されます。ターミナルでの実行は問題なしです。
hello.cppをNokajiでコンパイル
hello.cと同様にプロジェクトを作成して
- 「ファイル」→「プロジェクトの設定」→「コンパイラ」→「インクルードパス」に"/mnt/dev/include /mnt/dev/include/qt"を追加
- S.O. さんの「開発(+その他)日記」7月21日の記述内容にしたがって設定
- 「プロジェクト」→「ビルド」、残念ながら*.oから実行ファイルを作成するところでエラー。moc_hello.o( 略 ): undefined reference ……というエラーがいくつか。
-pipe -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -fno-exceptions -fno-rtti -fsigned-char -DQT_NO_DRAGANDDROP -DQT_NO_PROPERTIES -Wall -W -O2 -DNO_DEBUG
- 「プロジェクト」→「クリーンビルド」今度は無事終了しました。「プロジェクト」→「実行」ちゃんと動作しました(^^)
ZEditorのコンパイル
Satoshi村さんより最新版のZEditorのソースzeditor3.4.1_src.tar.gzをダウンロード、展開して、Nokajiに新規プロジェクトとして登録。設定は先ほど成功したとおりで「プロジェクト」→「ビルド」、あーまた同じエラーが発生して失敗。
試しにターミナルからコンパイルしてみる、zeditor.proが同梱されているので、これからtmakeでMakefileを作成。Includeのパスを追加してからmake。ちゃんとコンパイルできて、起動もできました。
Nokaji側の設定をMakefileの内容に一致させる様、オプションやインクルードパス、ライブラリパス、リンカ指定など修正するも、エラーの発生止まらず。何が異なるのか良くわからないです。