質問: うまくコンパイルできません 初心者です。 家のpcでc言語のプログラミングをやろうと思ってvisual c++ 2008というフリーソフトをダウンロードしました。 cプログラミングの本に書いてあるとおりソースファイルを作ってコンパイルしてみたのですがどうしてもうまく行かないので質問させていただきます。 エラー内容は次の通りです。 c:\cwork>cl test1.c microsoft(r) 32-bit c/c++ optimizing compiler version 15.00.21022.08 for 80x86 copyright (c) microsoft corporation. all rights reserved. test1.c microsoft (r) incremental linker version 9.00.21022.08 copyright (c) microsoft corporation. all rights reserved. /out:test1.exe test1.obj link : fatal error lnk1104: ファイル 'kernel32.lib' を開くことができません。 以上です。何が悪いのかわかる方教えてください。 何か足りないところがあれば言って下さい。よろしくお願いします。
回答: visual c++のユーザーではないのですが、実行ファイルを生成する流れは一般的に次のようになります。 1.コンパイラによってソースファイルをコンパイルする。 2.1で生成したバイナリファイルにライブラリから必要な機能をリンク(この作業を行うプログラムをリンカーと呼ぶ)して実行ファイル(.exe)を生成する。 メッセージの内容から判断すると2のリンク段階で問題が発生したようですね。つまり貴方のプログラムtest1.cの中からライブラリ(kernel32.lib)の中にある関数か変数を使おうとしているのですが、リンカーがkernel32.libを見つけることが出来ないので、test1.exeを生成できないといっているのです。そこでリンカーにライブラリのある場所を指定してやる必要が出てきます。 解決策ですが、以下のリンク先の「3.使用前の設定」を参考にされてはいかがでしょうか。または c:\cwork>cl test1.c kernel32.lib と打ち込んでみるとか。