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