車載PC Player - 4 - クロスコンパイル環境

| コメント(0) | トラックバック(0)

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

トラックバック(0)

トラックバックURL: http://diylabo.sakura.ne.jp/db/mt-tb.cgi/7

コメントする

2023年10月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
OpenID対応しています OpenIDについて