cygwin+Eclipse+KallistiOSで開発

統合開発環境のEclipseを使って開発できるようにしてみたので、覚書を残す。
2014070611020819

 

※この記事は、Windows上でCygwinとKallistiOSがインストールされていることを前提に書いている。
インストールされていない場合は、過去の記事[1] [2]を見てインストールする。
または、Cygwinをインストールしてtoolchains.tar.gzを/optフォルダに配置後解凍する。
toolchains.tar.gzは32bit用にコンパイルされています。64bitのCygwinでは使えません。
(20150712追記 .gzで終わるファイルをダウンロードする場合、負荷がかかってアクセスできなくなってしまうようなのでファイル名を変更しています。)

 

 

まず、cygwinを使って適当にKOSについているサンプルプログラムをコピーしておく。
今回は、/opt/toolchains/KallistiOS/examples/dreamcast/hello/をホームディレクトリにコピーして行う。

 

 

ここから日本語化されているeclispe(C/C++)をダウンロードして解凍する。

eclipseを実行して

[ファイル] -> [新規] -> [Makefile Project with Existing Code]を選択する。

2014070612134931

 

[Existing Code Location]にコピーしたフォルダを選択
[Toolchain for Indexer Settings]にCygwin GCCを選択
※プロジェクト名はフォルダを選択した時点で自動的に入るはずだが代えたい場合などは変更する。

2014070612142614
[完了]ボタンを押す。

 

 

 

このままでは、コンパイルが通らないので環境変数を設定する必要がある。

左端のプロジェクトエクスプローラに表示されているhelloを右クリック、最下段のプロパティをクリック
プロパティ画面が表示されるので、[C/C++ビルド] -> [環境]をクリック、以下のパラメータを環境変数に追加する。

KOS_AFLAGS=-little
KOS_AR=${KOS_CC_BASE}/bin/${KOS_CC_PREFIX}-ar
KOS_ARCH=dreamcast
KOS_AS=${KOS_CC_BASE}/bin/${KOS_CC_PREFIX}-as
KOS_BASE=/opt/toolchains/KallistiOS
KOS_CC=${KOS_CC_BASE}/bin/${KOS_CC_PREFIX}-gcc
KOS_CC_BASE=/opt/toolchains/dc/sh-elf
KOS_CC_PREFIX=sh-elf
KOS_CFLAGS=-O2 -fomit-frame-pointer -ml -m4-single-only -ffunction-sections -fdata-sections   ${KOS_INC_PATHS} -D_arch_${KOS_ARCH} -D_arch_sub_${KOS_SUBARCH} -Wall -g -fno-builtin -fno-strict-aliasing
KOS_GENROMFS=${KOS_BASE}/utils/genromfs/genromfs
KOS_INC_PATHS=-I${KOS_PORTS}/include -I${KOS_BASE}/include -I${KOS_BASE}/kernel/arch/${KOS_ARCH}/include -I${KOS_BASE}/addons/include
KOS_LD=${KOS_CC_BASE}/bin/${KOS_CC_PREFIX}-ld
KOS_LDFLAGS=-ml -m4-single-only -Wl,-Ttext=0x8c010000 -Wl,--gc-sections  -T/opt/toolchains/KallistiOS/utils/ldscripts/shlelf.xc  -nodefaultlibs ${KOS_LIB_PATHS}
KOS_LIBS=-Wl,--start-group -lkallisti -lc -lgcc -Wl,--end-group
KOS_LIB_PATHS=-L${KOS_BASE}/lib/${KOS_ARCH} -L${KOS_BASE}/addons/lib/${KOS_ARCH}
KOS_OBJCOPY=${KOS_CC_BASE}/bin/${KOS_CC_PREFIX}-objcopy
KOS_PORTS=/opt/toolchains/kos-ports
KOS_SUBARCH=pristine

;パスを追加する場合は、元の値に追加するように設定する
PATH=${CYGWIN_HOME}\opt\toolchains\KallistiOS\utils\gnu_wrappers;~~~~~

;デバック用オプションkos-cc実行時にパラメータなど表示する
KOS_WRAPPERS_VERBOSE=1

;C++を使う場合は、以下の変数を追加する必要がある
KOS_CCPLUS=${KOS_CC_BASE}/bin/${KOS_CC_PREFIX}-g++
KOS_CPPFLAGS=${KOS_CPPFLAGS} ${KOS_INC_PATHS_CPP} -fno-operator-names -fno-rtti -fno-exceptions

2014070614565749

[OK]ボタンを押してウィンドウを閉じる。

 

これで一応コンパイルできるようになった。

2014070614570459


このままだとインクルードパスが通っておらず表示画面にエラーが大量に出ている。
なので、インクルードパスを設定する必要がある。

また、プロジェクトエクスプローラからhelloを右クリック、最下段のプロパティをクリック
プロパティ画面が表示されるので、[C/C++ビルド] -> [環境]をクリック、以下のパラメータを環境変数に追加する。

${CYGWIN_HOME}\opt\toolchains\KallistiOS\include
${CYGWIN_HOME}\opt\toolchains\KallistiOS\addons\include
${CYGWIN_HOME}\opt\toolchains\KallistiOS\kernel\arch\dreamcast\include
${CYGWIN_HOME}\opt\toolchains\kos-ports\include
${CYGWIN_HOME}\opt\toolchains\dc\sh-elf\sh-elf\include

;C++を使用する場合に追加する
${CYGWIN_HOME}\opt\toolchains\dc\sh-elf\sh-elf\include\c++\4.7.3

あと、シンボルには「_arch_dreamcast」を追加しておく

2014070614564459

※大体のインクルードは解決されるはずですが、kos-portsに入っているものは、シンボルディレクトリがたどれず解決できません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です