こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

うまくコンパイルできません

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


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

投稿日時 - 2008-04-30 23:00:17

QNo.3988587

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

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

もし本当にやるなら、「.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?familyid=FE6F2099-B7B4-4F47-A244-C96D69C35DEC&displaylang=ja
でダウンロードできます。ちなみに、.NET Framework Version 2.0 (x86)
もダウンロードするよう書かれていますが、これはいりません。

投稿日時 - 2008-05-01 22:42:51

お礼

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

投稿日時 - 2008-05-03 13:09:04

ANo.2

Wr5

>LINK : fatal error LNK1104: ファイル 'kernel32.lib' を開くことができません。
が表示されたところで、setと入力してエンターキーを押すと環境変数が見られるかと思います。
その中に、LIBやLIBPATHは設定されていますか?

投稿日時 - 2008-05-01 00:52:52

補足

ありがとうございます。
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:16

ANo.1

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

投稿日時 - 2008-05-01 00:15:32

補足

ちなみに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:21

お礼

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

投稿日時 - 2008-05-01 18:39:59

あなたにオススメの質問