ページ 1 / 1
龍神録プログラミングの館
Posted: 2010年5月23日(日) 20:53
by マクベ
こんばんは。
龍神録プログラミングの館の2章、「まずは実行させてみよう」で実行してみたのですが
LINK : fatal error LNK1104: ファイル 'libtheora_static_d.lib' を開くことができません。
というエラーが出てしまいます。
過去ログに同じような質問があったので参考にしてみたのですが解決しませんでした。
どうすれば実行できるようになりますか?よろしくお願いします。
Re:龍神録プログラミングの館
Posted: 2010年5月23日(日) 21:06
by Dixq (管理人)
最近この質問が多いですね・・。
プロジェクトファイルを2010で作り直してアップロードしなおすので少々お待ち下さい。
Re:龍神録プログラミングの館
Posted: 2010年5月23日(日) 21:12
by Dixq (管理人)
なるほど、VC++のバージョンの違いじゃなく、DXライブラリのバージョンだけ新しくしたから起きた問題のようですね・・。
ぐ・・60章全部やり直すのか・・。
1時間後位にアップしますね。
Re:龍神録プログラミングの館
Posted: 2010年5月23日(日) 21:51
by Dixq (管理人)
龍神録プログラミングの館のプロジェクトファイル一式更新しました。
再度ダウンロードして、試していただけないでしょうか?
Re:龍神録プログラミングの館
Posted: 2010年5月23日(日) 22:02
by マクベ
再DLすると無事、実行させることができました。
本当にありがとうございます!
Re:龍神録プログラミングの館
Posted: 2010年5月23日(日) 22:48
by Justy
気のせいでしょうか。
多分前の時からだとは思いますが、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:龍神録プログラミングの館
Posted: 2010年5月23日(日) 23:00
by Dixq (管理人)
なるほど、そんな事が・・。
ソリューションエクスプローラーに入れこんでしまっているのが原因なのでしょうか。
本家でプロジェクトの作り方ページにそのような事は書いていないですね;
どうプロジェクトを作るのが正解なのでしょう・・。
Re:龍神録プログラミングの館
Posted: 2010年5月23日(日) 23:11
by Justy
>ソリューションエクスプローラーに入れこんでしまっているのが原因なのでしょうか。
多分そうでしょうね。
>どうプロジェクトを作るのが正解なのでしょう・
DXライブラリはヘッダにリンクするライブラリが指定されていますので、
ソリューションエクスプローラから libファイルを削除して、
リンカに "../include"のパスを通しておけばいいかと。
Re:龍神録プログラミングの館
Posted: 2010年5月23日(日) 23:55
by Dixq (管理人)
> Justyさん
ありがとうございます。
修正しましたが、これで大丈夫でしょうか?
http://dixq.net/rp/zip/project.zip
Re:龍神録プログラミングの館
Posted: 2010年5月24日(月) 00:02
by Justy
修正お疲れ様です。
11章で確認しました。
DxLib_dがリンクされていましたので、大丈夫だと思います。
Re:龍神録プログラミングの館
Posted: 2010年5月24日(月) 00:15
by Dixq (管理人)
Justyさん
助かりました。
御助言、更に御確認までありがとうございます。