C++ Builder 6 で Linker Fatal error

 C++ Builder 6 でプロジェクトのパスで嵌った。パスの中に「-(ハイフン)」が含まれているとリンカが致命的エラーを起こす。
 たぶん嵌ったのは今回で3回目くらいだけど、性懲りも無くまた忘れそうなので記録しておく。

事例

 たとえば次のようなフォルダにプロジェクトファイル「ABC.bpr」があるとする。(パス中にハイフンを含むフォルダ名「ABC-DEF」が存在する)

C:\Documents and Settings\hanada\My Documents\ABC-DEF\ABC.bpr

 これをC++ Builderでビルドすると、リンカが次のような致命的エラーを起こしてビルドに失敗する。

[Linker Fatal error] ABC.OBJ ファイル が開けません

 ちなみにこのような場合、そもそもプロジェクトに含まれるソールファイルからはオブジェクトファイル(拡張子OBJの中間ファイル)が生成されていない、ようだ。

 

解決策

 プロジェクトファイルのパスから「-(ハイフン)」を取り除く。例えば次のようにハイフンの代わりにアンダーバーを使うとか。

C:\Documents and Settings\hanada\My Documents\ABC_DEF\ABC.bpr