龍神録プログラミングの館

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
マクベ

龍神録プログラミングの館

#1

投稿記事 by マクベ » 15年前

こんばんは。
龍神録プログラミングの館の2章、「まずは実行させてみよう」で実行してみたのですが
LINK : fatal error LNK1104: ファイル 'libtheora_static_d.lib' を開くことができません。
というエラーが出てしまいます。
過去ログに同じような質問があったので参考にしてみたのですが解決しませんでした。
どうすれば実行できるようになりますか?よろしくお願いします。

Dixq (管理人)

Re:龍神録プログラミングの館

#2

投稿記事 by Dixq (管理人) » 15年前

最近この質問が多いですね・・。
プロジェクトファイルを2010で作り直してアップロードしなおすので少々お待ち下さい。

Dixq (管理人)

Re:龍神録プログラミングの館

#3

投稿記事 by Dixq (管理人) » 15年前

なるほど、VC++のバージョンの違いじゃなく、DXライブラリのバージョンだけ新しくしたから起きた問題のようですね・・。

ぐ・・60章全部やり直すのか・・。
1時間後位にアップしますね。

Dixq (管理人)

Re:龍神録プログラミングの館

#4

投稿記事 by Dixq (管理人) » 15年前

龍神録プログラミングの館のプロジェクトファイル一式更新しました。
再度ダウンロードして、試していただけないでしょうか?

マクベ

Re:龍神録プログラミングの館

#5

投稿記事 by マクベ » 15年前

再DLすると無事、実行させることができました。
本当にありがとうございます!

Justy

Re:龍神録プログラミングの館

#6

投稿記事 by Justy » 15年前

 気のせいでしょうか。
 多分前の時からだとは思いますが、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]


 まぁこれで実害があるか、というとそんなにないような気はしますが、一応ご報告まで。

Dixq (管理人)

Re:龍神録プログラミングの館

#7

投稿記事 by Dixq (管理人) » 15年前

なるほど、そんな事が・・。
ソリューションエクスプローラーに入れこんでしまっているのが原因なのでしょうか。
本家でプロジェクトの作り方ページにそのような事は書いていないですね;
どうプロジェクトを作るのが正解なのでしょう・・。

Justy

Re:龍神録プログラミングの館

#8

投稿記事 by Justy » 15年前

>ソリューションエクスプローラーに入れこんでしまっているのが原因なのでしょうか。
 多分そうでしょうね。


>どうプロジェクトを作るのが正解なのでしょう・
 DXライブラリはヘッダにリンクするライブラリが指定されていますので、
ソリューションエクスプローラから libファイルを削除して、
リンカに "../include"のパスを通しておけばいいかと。

Dixq (管理人)

Re:龍神録プログラミングの館

#9

投稿記事 by Dixq (管理人) » 15年前

> Justyさん

ありがとうございます。
修正しましたが、これで大丈夫でしょうか?
http://dixq.net/rp/zip/project.zip

Justy

Re:龍神録プログラミングの館

#10

投稿記事 by Justy » 15年前

 修正お疲れ様です。

 11章で確認しました。
 DxLib_dがリンクされていましたので、大丈夫だと思います。
 

Dixq (管理人)

Re:龍神録プログラミングの館

#11

投稿記事 by Dixq (管理人) » 15年前

Justyさん

助かりました。
御助言、更に御確認までありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る