ページへ戻る

− Links

 印刷 

VC++ONosa_dir2 のバックアップソース(No.4) :: OSASK計画

osaskwiki:VC++ONosa_dir2 のバックアップソース(No.4)

« Prev[4]  Next »[5]
&size(9){Created By Uchan};

*Visual C++ コンパイラーをosa_dir2で使ってみた記録

OSASKアプリをC++で作りたくなって、GOのC++コンパイラーを使いました。しかし、それがうまく動かないことが発覚し、当初Min-GWを試そうと思いましたが、実はこれ、だめコンパイラーらしく、OSASKアプリを作るのは出来ませんでした。
ということで、VC++を使うことにしました。

**VC++って高くないの?
まあ、買うと高いです。ウン千円です。

しか~~し、実はマイクロソフトから、Visual C++ Toolkit 2003というものが配布されているのです。これは、ビジュアルな開発環境は無いものの、まさしくVC++コンパイラーとリンカーがセットになったもので、ソースファイルがあれば、Visual C++ .NETと同じバイナリが出来ます。(バージョンによる些細な違いはあるでしょうけど。)
今回の、「osa_dir2でコンパイルする」目的には、これで十分(というか、ビジュアルな開発環境は意味ない)なので、[[早速ダウソ:http://msdn.microsoft.com/visualc/vctoolkit2003/]]。

**どうやってosa_dir2に組み込むか。
これが今回の最大問題だったのです。
まず、z_tools内のcom_mak.txtの
 CC1      = $(TOOLPATH)cc1.exe -I$(INCPATH) $(CC1OPT) -Os -Wall -quiet
のしたの行に
 CL       = $(VCToolKitInstallDir)bin\cl.exe -I$(INCPATH) /c
と書き足します。

 %.ca : %.c Makefile
	$(SJISCONV) $*.c $*.ca

 %.cpa : %.cpp Makefile
	$(SJISCONV) $*.cpp $*.cpa
 (これは無い場合がある)

この2つ(1つの場合がある)それぞれを削除し、

 %.obj : %.nas Makefile
	$(NASK) $*.nas $*.obj
の下の行に
 %.obj : %.c Makefile
	$(CL) $*.c

 %.obj : %.cpp Makefile
	$(CL) $*.cpp
の2つを書き足します。

そしたらcom_mak.txtは完成です。

***お次はguigui00.hをいじる
guigui00.hも少しいじらないといけないようです。

まず、42行目の//をはずします("//"だけを削除)。

次にguigui00.hの中の、extern __inline__関数を全て削除します。

具体的には、

 extern __inline__ void ...
 {
     ....
 }

というところを全て削除(externから } まで)します。
削除できたら、それをvcgg00.hという名前で保存します。

今度から、C++でアプリを書くときは、このvcgg00.hをextern "C"でインクルードします。

**
これをやれば、みんなもVC++を使って快適にC++プログラムをコンパイルできます。

**添付ファイルの情報
vcosadir.sar

VC++コンパイラでのコンパイルに対応したcom_mak.txtとvcgg00.h。CとC++プログラムがコンパイルできる。~
com_mak.txtはこれまでのcom_mak.txtと入れ替えて使う。(再びGOのコンパイラを使いたくなったときに、入れ替える前のcom_mak.txtが必要になるので、ちゃんとそれも取っておくこと。)

vcgg00.hは、guigui00.hと同じフォルダにコピーする。~
C++アプリを作るときは、guigui00.hのかわりにvcgg00.hをインクルードするようにする。

**追記2004.10.4
この設定だとライブラリが作れないなどの問題があるようです。それを解決するには、まずcl.exeにパスを通し、次に、com_mak.txtの
 CL       = $(VCToolKitInstallDir)bin\cl.exe -I$(INCPATH) /c
を
 CL       = cl.exe -I$(INCPATH) -c
とします。これで正常動作するはず。
パスの通し方は[[ここ:http://www.geocities.co.jp/CollegeLife-Library/2783/index.html]]を参照
*こめんと(意見・質問・間違い指摘・その他何でも。)
-introeみたいにライブラリを使おうとすると、エラーが出る。 -- ''uchan'' SIZE(10){2004-10-03 (日) 15:30:27}
-やっぱVC++は不便な点が多いので、GOがバージョンアップしてC++の不具合が無くなるのを期待。 -- ''uchan'' SIZE(10){2004-10-03 (日) 17:01:06}
-ライブラリ出来ました。VCにパスを通し、CL = cl.exe -I$(INCPATH) -c としました。 -- ''uchan'' SIZE(10){2004-10-04 (月) 07:16:28}

#comment

« Prev[4]  Next »[5]