初心者です。
家の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件)
- 最新から表示
- 回答順に表示
No.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
この回答への補足
ちなみに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' を開けません。
という命令が出て実行できませんでした。
ありがとうございます。
参考URLにいってPlatform SDK というものがあればうまくコンパイルできると思い、指示通りにDLしたのですが、そのファイルを開けず設定すら出来ませんでした。
もう少しいろいろ試してみるつもりです。
No.2
- 回答日時:
>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\
頼ってばかりで申し訳ありませんが、何かわかったらお願いします。
No.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? …
でダウンロードできます。ちなみに、.NET Framework Version 2.0 (x86)
もダウンロードするよう書かれていますが、これはいりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- その他(プログラミング・Web制作) python fbprophetについて 1 2022/09/29 19:44
- その他(ネットショッピング・通販・ECサイト) この著作権は、存在するのですか 3 2022/05/16 17:40
- Windows 10 アプリ内のMicrosoft・・・ 4 2022/10/10 16:08
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- オープンソース stable diffusionのインストールがうまくいきません。 1 2023/06/20 13:09
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- C言語・C++・C# 3×3のラテン方陣をつくるプログラムを作成したのですが、(↓) #include <stdio.h> 5 2023/07/10 01:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAを何回も作り直して、容量が...
-
<math.h>があるのにsqrtが・...
-
” OS ビルド ” の意味が分か...
-
[c++] <pthread.h>がinclude で...
-
「fatal error C1189」を回避す...
-
C言語でヘッダファイルにグロー...
-
マクロ コンパイルがグレーバック
-
ProCでコンパイルエラーが出ます
-
コンパイルエラー:ユーザ定義...
-
ILSpyで、デコンパイルできない。
-
関数形式マクロ
-
C++コンパイル時に『 C1083: in...
-
1 つ以上の複数回定義されてい...
-
VB6で開発中…標準モジュール間...
-
「猫でもわかるプログラミング...
-
RPGでプログラムからソースファ...
-
外部シンボル "_main"は未解決です
-
戻り値について
-
エクセルVBAではRound...
-
COBOLプログラムからC関数を呼...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAを何回も作り直して、容量が...
-
<math.h>があるのにsqrtが・...
-
” OS ビルド ” の意味が分か...
-
Makefile作成時の拡張子.oとは?
-
「fatal error C1189」を回避す...
-
1 つ以上の複数回定義されてい...
-
ILSpyで、デコンパイルできない。
-
C言語でヘッダファイルにグロー...
-
エクセルVBAではRound...
-
セミコロンについて
-
マクロ コンパイルがグレーバック
-
C++コンパイル時に『 C1083: in...
-
外部シンボル "_main"は未解決です
-
PRO*C コンパイルエラー
-
コンパイルエラー:ユーザ定義...
-
クリティカルエラー Expressio...
-
ビルドとリビルドの違いを教え...
-
RPGでプログラムからソースファ...
-
戻り値について
-
C++のhppファイルをCでinclude
おすすめ情報