ZBOXNANO VD01はコンパイラを動かすにはちょっと向かないPCです。CPUは遅いしSSDは酷使したくないし。
そこで、別のPCでコンパイラを動かす必要があるのですが、手元にあるのはメインで使っているWindowsXPと、Windows7だけです。パワフルなLinux環境のPCがあれば簡単な話ですが、ここはWindowsでvoyage用の実行ファイルを作る事にします。
WindowsでLinuxの実行ファイルを作るには、クロスコンパイル環境が必要になります。
GCCをクロスコンパイル用に設定してWindows上でコンパイルして利用する
考えただけでも面倒な作業になるので却下。
voyageにrshサーバを立ち上げて、Eclipseからrshでコンパイルを行わせる
そもそもVD01が遅いからクロスコンパイル環境を作ろうとしているので却下。
windows上の仮想PCでLinuxを動かし、eclipseからrshでコンパイルを行わせる
これしかありませんね。クロスコンパイル環境と言えるのか微妙ですが、実行ファイルがWindowsPC上で作れればOKです。
まず、仮想PCはフリーで使えてLinuxに対応しているvmware playerを使用します。本家サイトからダウンロードしてインストールします。
仮想PCに入れるのはvoyageに近い物ということでDebianを選択。こちらも本家からisoイメージをダウンロードしてvmwareにインストールします。
環境はコンソールモードのファイルサーバを選択して、ssh、C++の開発に必要なパッケージ、sambaクライアント、など使いそうな物を追加しました。
vmwareにはホストPCのファイルにアクセスするための仕組みがあるのですが、上手く動作しなかったのでsambaクライアントを使ってDebianからWindows上の共有ファイルをアクセスするようにしました。これで、Windows上のプログラムをDebian上でコンパイルする事が出来ます。
あとは、Eclipseの環境設定とかrsh環境設定です。でもEclipseのCDTは使いにくいから、プログラムはVisualStudioで書くのでmakefileだけでも良いかも。どうせ連携できないし。
こちらを参考にとりあえず書いたmakefile。懐かしいな
CC=g++ LD=g++ PROJECT_DIR=(Windows上の共有ファイルをマウントしたディレクトリ) WORK_DIR=(作業場所) SRC_DIR=$(PROJECT_DIR)src SRCS=$(shell cd $(SRC_DIR); ls *.cpp) BUILD_DIR=$(WORK_DIR)debug TARGET = (出力ファイル).so OBJS = $(SRCS:.cpp=.o) INCLUDE=-I$(PROJECT_DIR)include CFLAGS=-c -D_GCC -DLINUX -DEXPORTS -DUNICODE -static -MMD -MP LDFLAGS = -shared all : $(BUILD_DIR) $(patsubst %,$(BUILD_DIR)/%,$(TARGET)) $(BUILD_DIR): mkdir $(BUILD_DIR) $(BUILD_DIR)/%.o : $(SRC_DIR)/%.cpp $(CC) $(CFLAGS) -o $@ $< $(BUILD_DIR)/$(TARGET) : $(patsubst %,$(BUILD_DIR)/%,$(OBJS)) $(CC) $(LDFLAGS) -o $@ $^ clean: rm -fr $(BUILD_DIR) .PHONY: all clean |
コメントする