コマンドラインでコンパイル実行する方法を述べている
この Visual C++ 2005 Express Edition(以下VC++2005)はそもそも大経大の開発環境 Visual Studio 6.0(以下 VC++6.0)と互換性があると思って試してみたのですが、VC++2005 ではシングルスレッド用の libc.lib が廃止されている関係で、両環境でコンパイルしたOBJファイルを混在させてリンクすることができません。 ダメじゃん! この VC++2005 にしろ、Borland C++ Compiler 5.5.1 にしろ、全てのソースファイル(*.c)からコンパイルし直してリンクすれば済む話なのですが、今回のHEXゲーム対戦の様にソースを公開したくない場合には行き詰ってしまいます。
大経大環境(VC++6.0)でコンパイルしたOBJファイルを VC++2005 で一緒にリンクしようとすると、そのままでは、「LINK : fatal error LNK1104: cannot open file 'LIBC.lib'」とリンクエラーが出て実行ファイルを得ることができません。 http://hspwiki.nm.land.to/?MakeHPI に従って、ダミーの libc.lib を C:\Program Files\Microsoft Visual Studio 8\VC\lib に置けば、「LINK : warning LNK4098: defaultlib 'LIBC' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。」と、ワーニングは出るものの一応リンクして実行ファイルを作成することはできるようです。一応まともに動く様です。
もっと良い方法を発見したら教えて下さい!
VC++2005 でコンパイルしたOBJファイルを混ぜて大経大環境(VC++6.0)で一緒にリンクしようとすると、「LINK : warning LNK4098: defaultlib "LIBCMT" は他のライブラリの使用と競合しています; /NODEFAULTLIB:library を使用してください」と、ワーニングが出ます。これで出来た実行ファイルがまともに動くかどうかは未確認です。試してみて下さい。 もしこのままではダメで、何か良い方法を発見したら教えて下さい!