VisualStudio か GCC が指定コンパイラになっている様。(記述箇所忘れた)
普段使っている [C++Builder5] (枯れ過ぎw) でコンパイルが通るか試してみる。
ちなみに [C++Builder5] をコマンドラインから使うのは初めてなので、紆余曲折が容易に想像出来る。w
SDK 内のソース他を一つのディレクトリにコピー。
Tips:「TextBox の字が小さくて…」の時は
・必要部分をドラッグ反転
・「コピー」(Ctrl+C)
・メモ帳を開く
・「ペースト」(Ctrl+V)
も、一つの方法
※ 大きくした
Windows 「コマンドプロンプト」から [bcc32] を実行
・「たしか、インストーラが path を通した筈」
・[C++BuilderXE5] の bcc32 が実行された… orz
・path 上で [C++BuilderXE5]\bin が優先されてる
・[C++Builder5] のあとで [C++BuilderXE5] をインストールしたため
・[C++BuilderXE5] は自分的にイマイチなので使っていない
・最大理由:デバッグ/リリースを切換えなければならない 絶対忘れてトラブる
・専用の path 設定バッチファイルを作る
・[C++Builder5] と [コマンドラインツール] のみw
環境設定 env.bat
set path="D:\Application\cbuilder5\bin";"C:\Windows\System32"
↑ 素直に "C:\Program Files" にインストールしてないあたりが…
・無事、[C++Builder5] の bcc32.exe が走る
Borland 用の MakeFile/LinkList/起動バッチ を作成。
コマンドラインコンパイラ用のメイクを新しく書くのは久しぶり。
TurboC++ がメインの頃は IDE は使わなかったのでしょっちゅう書いていた。
MakeFile syro.mk
#########################################
# #
# Makefile SYRO SDK SAMPLE #
# #
# For Boaland Make #
# #
#########################################
CCPATH = D:\Application\CBuiler5\bin
INCPATH = $(CCPATH)\include
TARGRET = SYRO
MKCMD = $(TARGRET).mk
LKCMD = $(TARGRET).lk
EXENM = $(TARGRET).exe
CFLG = -c -K -w -I$(INCPATH)
LFLG =
CC = bcc32
LK = ilink32
HEAD1 = stdint.h \
korg_syro_comp.h \
korg_syro_func.h \
korg_syro_type.h \
korg_syro_volcasample.h \
OBJS = \
korg_syro_comp.obj \
korg_syro_func.obj \
korg_syro_volcasample.obj \
korg_syro_volcasample_exsample.obj \
.C.OBJ:
$(CC) $(CFLG) $< > CERR
type CERR
$(EXENM): $(OBJS)
$(CC) -e$(EXENM) $(LFLG) @$(LKCMD) > LERR
type LERR
korg_syro_comp.obj : korg_syro_comp.c $(MKCMD) $(LKCMD) $(HEAD1)
korg_syro_func.obj : korg_syro_func.c $(MKCMD) $(LKCMD) $(HEAD1)
korg_syro_volcasample.obj : korg_syro_volcasample.c $(MKCMD) $(LKCMD) $(HEAD1)
korg_syro_volcasample_exsample.obj : korg_syro_volcasample_exsample.c $(MKCMD) $(LKCMD) $(HEAD1)
↑ HEAD1 = stdint.h \ は後述(*1)
コレの関係で
CCPATH = D:\Application\CBuiler5\bin
INCPATH = $(CCPATH)\include
を記述したが、要らなかったじゃないかな?(*1)
・コレを書いていて気がついたが INCPATH が
D:\Application\CBuiler5\bin\include なってしまっている org
以下、知っている人には蛇足
コンパイラオプション
-c .obj 生成のみ
-K char はデフォルトで符号なし
-wxxx 全部の警告
-Ixxx インクルードディレクトリ 要らなかったじゃないかな?(*1)
ここら辺は TurboC++ から変わっていない
さすがに「メモリモデル指定」は無くなってる
リンケージ
bcc32 がリンカを呼び出してくれる
ので LK = ilink32 は要らないな
LinkList syro.lk
korg_syro_comp.obj
korg_syro_func.obj
korg_syro_volcasample.obj
korg_syro_volcasample_exsample.obj
make 起動バッチ mk.bat
make -fsyro.mk %1 %2 %3 %4
↑ cmd>mk -B で全再コンパイル
MakeFile/LinkList/起動バッチのバグ取りをしながら実行用ファイル作成。
・致命的エラー: stdint.h が見つからない 上記(*1)
・MakeFile が違っているのかと試行錯誤 MakeFile 注釈参照
・[C++Builder5] には無かった
・CC99 以降の規格 VisualStudio2008 でもまだ無かった模様
・インストール済の [C++Builder6] で発見 カレント(ソース)ディレクトリにコピー
・[C++Builder5] の include ディレクトリには入れない
・同じ致命的エラー
・読出しているソースを変更 <stdint.h> -> "stdint.h"
・他、syro SDK のディレクトリ構造に依存している #include 部分のソース変更
実行用ファイル syro.exe が出来た!
コンパイル経過
D:\_MyProg\MIDI\VolcaSample\SDK\TEST\CMD>mk -B
D:\_MyProg\MIDI\VolcaSample\SDK\TEST\CMD>make -fsyro.mk -B
MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
bcc32 -c -K -w -ID:\Application\CBuiler5\bin\include korg_syro_comp.c > CERR
type CERR
Borland C++ 5.5 for Win32 Copyright (c) 1993, 2000 Borland
korg_syro_comp.c:
警告 W8004 korg_syro_comp.c 595: 'srccount' に代入した値は使われていない(関数 SyroComp_Comp )
bcc32 -c -K -w -ID:\Application\CBuiler5\bin\include korg_syro_func.c > CERR
type CERR
Borland C++ 5.5 for Win32 Copyright (c) 1993, 2000 Borland
korg_syro_func.c:
警告 W8071 korg_syro_func.c 79: 変換によって有効桁が失われる(関数 SyroFunc_CalculateCrc16 )
警告 W8071 korg_syro_func.c 104: 変換によって有効桁が失われる(関数 SyroFunc_CalculateEcc )
警告 W8071 korg_syro_func.c 138: 変換によって有効桁が失われる(関数 SyroFunc_CalculateEcc )
bcc32 -c -K -w -ID:\Application\CBuiler5\bin\include korg_syro_volcasample.c > CERR
type CERR
Borland C++ 5.5 for Win32 Copyright (c) 1993, 2000 Borland
korg_syro_volcasample.c:
警告 W8071 korg_syro_volcasample.c 299: 変換によって有効桁が失われる(関数 SyroVolcaSample_MakeData )
bcc32 -c -K -w -ID:\Application\CBuiler5\bin\include korg_syro_volcasample_exsample.c > CERR
type CERR
Borland C++ 5.5 for Win32 Copyright (c) 1993, 2000 Borland
korg_syro_volcasample_exsample.c:
警告 W8071 korg_syro_volcasample_exsample.c 166: 変換によって有効桁が失われる(関数 get_commandline_number )
警告 W8071 korg_syro_volcasample_exsample.c 248: 変換によって有効桁が失われる(関数 setup_file_sample )
bcc32 -eSYRO.exe @SYRO.lk > LERR
type LERR
Borland C++ 5.5 for Win32 Copyright (c) 1993, 2000 Borland
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland