アプリ版:「スタンプのみでお礼する」機能のリリースについて

初心者です。
家の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' を開くことができません。


以上です。何が悪いのかわかる方教えてください。
何か足りないところがあれば言って下さい。よろしくお願いします。

A 回答 (3件)

Visual C++のユーザーではないのですが、実行ファイルを生成する流れは一般的に次のようになります。


1.コンパイラによってソースファイルをコンパイルする。
2.1で生成したバイナリファイルにライブラリから必要な機能をリンク(この作業を行うプログラムをリンカーと呼ぶ)して実行ファイル(.exe)を生成する。

メッセージの内容から判断すると2のリンク段階で問題が発生したようですね。つまり貴方のプログラムtest1.cの中からライブラリ(kernel32.lib)の中にある関数か変数を使おうとしているのですが、リンカーがkernel32.libを見つけることが出来ないので、test1.exeを生成できないといっているのです。そこでリンカーにライブラリのある場所を指定してやる必要が出てきます。

解決策ですが、以下のリンク先の「3.使用前の設定」を参考にされてはいかがでしょうか。または
C:\cwork>cl test1.c kernel32.lib
と打ち込んでみるとか。

参考URL:http://lets-go.hp.infoseek.co.jp/c_setting09.html

この回答への補足

ちなみにmatsuzay08さんの言われた
C:\cwork>cl test1.c kernel32.lib
という命令も試みたのですが

C:\cwork>cl test1.c kernel32.lib
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
kernel32.lib
LINK : fatal error LNK1181: 入力ファイル 'kernel32.lib' を開けません。

という命令が出て実行できませんでした。

補足日時:2008/05/01 18:40
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考URLにいってPlatform SDK というものがあればうまくコンパイルできると思い、指示通りにDLしたのですが、そのファイルを開けず設定すら出来ませんでした。
もう少しいろいろ試してみるつもりです。

お礼日時:2008/05/01 18:39

>LINK : fatal error LNK1104: ファイル 'kernel32.lib' を開くことができません。


が表示されたところで、setと入力してエンターキーを押すと環境変数が見られるかと思います。
その中に、LIBやLIBPATHは設定されていますか?

この回答への補足

ありがとうございます。
Visual C++ 2008 Express EditonをDLして、それに入っているコマンドプロンプトでは環境変数の設定は必要ないというようなことを聞いたのですが、違うかもしれないですね。

Wr5さんに教えていただいたとおりやってみたのですが、いまいちよくわかりませんでした。
メッセージは以下の通りです。

C:\cwork>set
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\Nao\Application Data
CLASSPATH=.;C:\Program Files\Java\jre1.5.0_06\lib\ext\QTJava.zip
CLIENTNAME=Console
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=YOUR-ATJWHHGLE5
ComSpec=C:\WINDOWS\system32\cmd.exe
DBCONFIG=C:\Adabas\sql
DBROOT=C:\Adabas
DBWORK=C:\Adabas\sql
DevEnvDir=C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE
FP_NO_HOST_CHECK=NO
Framework35Version=v3.5
FrameworkDir=C:\WINDOWS\Microsoft.NET\Framework
FrameworkVersion=v2.0.50727
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\Nao
INCLUDE=C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE;C:\Program Files
\Microsoft Visual Studio 9.0\VC\PlatformSDK\include;
LIB=C:\Program Files\Microsoft Visual Studio 9.0\VC\LIB;C:\Program Files\Microso
ft Visual Studio 9.0\VC\PlatformSDK\lib;
LIBPATH=C:\WINDOWS\Microsoft.NET\Framework\v3.5;C:\WINDOWS\Microsoft.NET\Framewo
rk\v2.0.50727;C:\Program Files\Microsoft Visual Studio 9.0\VC\LIB;
LOGONSERVER=\\YOUR-ATJWHHGLE5
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Path=C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files\M
icrosoft Visual Studio 9.0\VC\BIN;C:\Program Files\Microsoft Visual Studio 9.0\C
ommon7\Tools;C:\WINDOWS\Microsoft.NET\Framework\v3.5;C:\WINDOWS\Microsoft.NET\Fr
amework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 9.0\VC\VCPackages;C:
\Program Files\Microsoft Visual Studio 9.0\VC\PlatformSDK\bin;C:\usr\local\bin;C
:\gs\gs7.07\bin;C:\gs\gs7.07\lib;C:\Program Files\QuickTime\QTSystem\;C:\Program
Files\Microsoft SQL Server\90\Tools\binn\;C:\usr\local\bin;C:\gs\gs8.54\bin;C:\
gs\gs8.54\lib
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 7, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0207
ProgramFiles=C:\Program Files
PROMPT=$P$G
QTJAVA=C:\Program Files\Java\jre1.5.0_06\lib\ext\QTJava.zip
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\Nao\LOCALS~1\Temp
TMP=C:\DOCUME~1\Nao\LOCALS~1\Temp
USERDOMAIN=YOUR-ATJWHHGLE5
USERNAME=Nao
USERPROFILE=C:\Documents and Settings\Nao
VCINSTALLDIR=C:\Program Files\Microsoft Visual Studio 9.0\VC
VS90COMNTOOLS=C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\
VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 9.0
windir=C:\WINDOWS
WindowsSdkDir=C:\Program Files\Microsoft Visual Studio 9.0\VC\PlatformSDK\


頼ってばかりで申し訳ありませんが、何かわかったらお願いします。

補足日時:2008/05/01 18:28
    • good
    • 0

どうもコマンドプロンプトからコンパイルしてるみたいですね。


コマンドプロンプトからコンパイル/実行すると最初がひどく面倒です。
初心者の方には混乱の元になるような気が十分します。

もし本当にやるなら、「.NETFrameworkSDK」というのがありまして、それをインストールしないと無理です。

.NET Framework Version 2.0 Language Pack (x86)
をインストールしてから
Microsoft .NET Framework 2.0 SDK 日本語版 (x86)
をインストールする必要があります。
インストールしたらコマンドプロンプトを起動するたびに
"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sdkvars.bat"
を入力する事によってcl.exeが使用できるようになります。

http://www.microsoft.com/downloads/details.aspx? …
でダウンロードできます。ちなみに、.NET Framework Version 2.0 (x86)
もダウンロードするよう書かれていますが、これはいりません。
    • good
    • 0
この回答へのお礼

どうにも難しいので、他の方法を試してみます。
ありがとうございました。

お礼日時:2008/05/03 13:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!