こんばんは。
龍神録プログラミングの館の2章、「まずは実行させてみよう」で実行してみたのですが
LINK : fatal error LNK1104: ファイル 'libtheora_static_d.lib' を開くことができません。
というエラーが出てしまいます。
過去ログに同じような質問があったので参考にしてみたのですが解決しませんでした。
どうすれば実行できるようになりますか?よろしくお願いします。
龍神録プログラミングの館
Re:龍神録プログラミングの館
なるほど、VC++のバージョンの違いじゃなく、DXライブラリのバージョンだけ新しくしたから起きた問題のようですね・・。
ぐ・・60章全部やり直すのか・・。
1時間後位にアップしますね。
ぐ・・60章全部やり直すのか・・。
1時間後位にアップしますね。
Re:龍神録プログラミングの館
気のせいでしょうか。
多分前の時からだとは思いますが、Debugでビルドした時 DxLib_dをリンクしないで、
DxLib.libをリンクしているように見えます。
例えば VisualStudio 2008 SP1で11章をビルドすると、出来上がった実行ファイルは DxLib_d.libを含まずに
DxLib.libを含んでいるようです。
以下はリンカに /VERBOSEオプションをつけて Debugでビルドした時のログの一部です。
[color=#d0d0ff" face="monospace]
1> "int __cdecl DxLib::GetHitKeyStateAll(char *)" (?GetHitKeyStateAll@DxLib@@YAHPAD@Z) が見つかりました。
1> key.obj で参照されています。
1> DxLib.lib(DxInput.obj) を読み込みました。
1> "int __cdecl DxLib::printfDx(char const *,...)" (?printfDx@DxLib@@YAHPBDZZ) が見つかりました。
1> key.obj で参照されています。
1> load.obj で参照されています。
1> main.obj で参照されています。
1> DxLib.lib(DxWin.obj) を読み込みました。
[/color]
以下はリンカに /MAPオプションをつけて Debugでビルドしたときに生成された mapファイルの一部です。
[color=#d0d0ff" face="monospace]
0002:0000fbf0 ?GetHitKeyStateAll@DxLib@@YAHPAD@Z 00577bf0 f DxLib:DxInput.obj
0002:00018000 ?printfDx@DxLib@@YAHPBDZZ 00580000 f DxLib:DxWin.obj
[/color]
本来は以下のような出力になるはずです。
[color=#d0d0ff" face="monospace]
1> "int __cdecl DxLib::GetHitKeyStateAll(char *)" (?GetHitKeyStateAll@DxLib@@YAHPAD@Z) が見つかりました。
1> key.obj で参照されています。
1> DxLib_d.lib(DxInput.obj) を読み込みました。
1> "int __cdecl DxLib::printfDx(char const *,...)" (?printfDx@DxLib@@YAHPBDZZ) が見つかりました。
1> key.obj で参照されています。
1> load.obj で参照されています。
1> main.obj で参照されています。
1> DxLib_d.lib(DxWin.obj) を読み込みました。
[/color]
[color=#d0d0ff" face="monospace]
0002:0000fbf0 ?GetHitKeyStateAll@DxLib@@YAHPAD@Z 00578bf0 f DxLib_d:DxInput.obj
0002:00018000 ?printfDx@DxLib@@YAHPBDZZ 00581000 f DxLib_d:DxWin.obj
[/color]
まぁこれで実害があるか、というとそんなにないような気はしますが、一応ご報告まで。
多分前の時からだとは思いますが、Debugでビルドした時 DxLib_dをリンクしないで、
DxLib.libをリンクしているように見えます。
例えば VisualStudio 2008 SP1で11章をビルドすると、出来上がった実行ファイルは DxLib_d.libを含まずに
DxLib.libを含んでいるようです。
以下はリンカに /VERBOSEオプションをつけて Debugでビルドした時のログの一部です。
[color=#d0d0ff" face="monospace]
1> "int __cdecl DxLib::GetHitKeyStateAll(char *)" (?GetHitKeyStateAll@DxLib@@YAHPAD@Z) が見つかりました。
1> key.obj で参照されています。
1> DxLib.lib(DxInput.obj) を読み込みました。
1> "int __cdecl DxLib::printfDx(char const *,...)" (?printfDx@DxLib@@YAHPBDZZ) が見つかりました。
1> key.obj で参照されています。
1> load.obj で参照されています。
1> main.obj で参照されています。
1> DxLib.lib(DxWin.obj) を読み込みました。
[/color]
以下はリンカに /MAPオプションをつけて Debugでビルドしたときに生成された mapファイルの一部です。
[color=#d0d0ff" face="monospace]
0002:0000fbf0 ?GetHitKeyStateAll@DxLib@@YAHPAD@Z 00577bf0 f DxLib:DxInput.obj
0002:00018000 ?printfDx@DxLib@@YAHPBDZZ 00580000 f DxLib:DxWin.obj
[/color]
本来は以下のような出力になるはずです。
[color=#d0d0ff" face="monospace]
1> "int __cdecl DxLib::GetHitKeyStateAll(char *)" (?GetHitKeyStateAll@DxLib@@YAHPAD@Z) が見つかりました。
1> key.obj で参照されています。
1> DxLib_d.lib(DxInput.obj) を読み込みました。
1> "int __cdecl DxLib::printfDx(char const *,...)" (?printfDx@DxLib@@YAHPBDZZ) が見つかりました。
1> key.obj で参照されています。
1> load.obj で参照されています。
1> main.obj で参照されています。
1> DxLib_d.lib(DxWin.obj) を読み込みました。
[/color]
[color=#d0d0ff" face="monospace]
0002:0000fbf0 ?GetHitKeyStateAll@DxLib@@YAHPAD@Z 00578bf0 f DxLib_d:DxInput.obj
0002:00018000 ?printfDx@DxLib@@YAHPBDZZ 00581000 f DxLib_d:DxWin.obj
[/color]
まぁこれで実害があるか、というとそんなにないような気はしますが、一応ご報告まで。
Re:龍神録プログラミングの館
なるほど、そんな事が・・。
ソリューションエクスプローラーに入れこんでしまっているのが原因なのでしょうか。
本家でプロジェクトの作り方ページにそのような事は書いていないですね;
どうプロジェクトを作るのが正解なのでしょう・・。
ソリューションエクスプローラーに入れこんでしまっているのが原因なのでしょうか。
本家でプロジェクトの作り方ページにそのような事は書いていないですね;
どうプロジェクトを作るのが正解なのでしょう・・。
Re:龍神録プログラミングの館
>ソリューションエクスプローラーに入れこんでしまっているのが原因なのでしょうか。
多分そうでしょうね。
>どうプロジェクトを作るのが正解なのでしょう・
DXライブラリはヘッダにリンクするライブラリが指定されていますので、
ソリューションエクスプローラから libファイルを削除して、
リンカに "../include"のパスを通しておけばいいかと。
多分そうでしょうね。
>どうプロジェクトを作るのが正解なのでしょう・
DXライブラリはヘッダにリンクするライブラリが指定されていますので、
ソリューションエクスプローラから libファイルを削除して、
リンカに "../include"のパスを通しておけばいいかと。