DxLib.lib リンカエラー…?

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

DxLib.lib リンカエラー…?

#1

投稿記事 by カズ » 16年前

初めまして、カズと申します。

現在、四聖龍神録を通して、Cド素人レベルから弾幕シューティングゲームを作ろうと勉強しているのですが、
『まずは実行させてみよう』(http://dixq.net/rp/2.html)こちらにある通りにコンパイル、実行しようとDXライブラリの導入からVC++の設定まで済ませ、ビルドしてみたところ、
GV.h内の

   "../../../include/DxLib.h"



   "DxLib.h"

に書き直していないがためのエラーが発生し、それは質問掲示板の現行ログや過去ログを見て解決できたのですが、今度は

   LINK : fatal error LNK1104: ファイル '..\include\DxLib.lib' を開くことができません。

というエラーが発生し、グーグルで検索してみたり質問掲示板の過去ログを調べたりしているのですが、さっぱり進展致しません。
ただ、調べた結果、ログにも同様の質問が書き込みされていたので、陥りやすいエラーなのかなぁとは思いましたが解決には至りませんでした。

VC++ディレクトリの『インクルード ファイル』『ライブラリ ファイル』はしっかりダウンロードしたDXライブラリ下部の『プロジェクトに追加すべきファイル_VC用』になっています。

一度DXライブラリフォルダの場所を『デスクトップ』から別のフォルダに移動しましたが、それに伴ってパスも修正し、個人的見解ですが『インクルード』側はちゃんと『プロジェクトに追加すべきファイル_VC用』になっていると思うのですが、同じパスを持つ『ライブラリ』側に読み込みエラーが起こるのが分かりません。

結果的にはLNK1104エラーを解消したいのですが、どうしてこのエラーが起こるのかということも教えて頂けると幸いです。

使用しているコンパイラは『Visual C++ 2008 Express Edition』
ライブラリは『DXライブラリ』
OSは『WindowsXP HomeEdition SP3』です。
プロジェクトの一括ダウンロードを行って、新規というよりも編集の形をとって勉強しております。

ソースコードはまるっきりコピーですが、このようになっております。
------------------------------------------------
[main.cpp]
#define GLOBAL_INSTANCE 
#include "../include/GV.h"

int Key[256];

int GetHitKeyStateAll_2(int GetHitKeyStateAll_InputKey[/url]){
    char GetHitKeyStateAll_Key[256];
    GetHitKeyStateAll( GetHitKeyStateAll_Key );
    for(int i=0;i<256;i++){
        if(GetHitKeyStateAll_Key==1) GetHitKeyStateAll_InputKey++;
        else                            GetHitKeyStateAll_InputKey=0;
    }
    return 0;
}

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
    ChangeWindowMode(TRUE);//ウィンドウモード
    if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化

    while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
          //↑メッセージ処理          ↑画面をクリア           ↑入力状態を保存       ↑ESCが押されていない


        //ココ!!



        ScreenFlip();
    }

    DxLib_End();
    return 0;
}

------------------------------------------------
[GV.h]
#include "DxLib.h"
#include "define.h"

------------------------------------------------

お手上げ状態で困っています、皆さんの知識を貸して下さい。よろしくお願いいたします。
なにぶんヒドイ素人なので、重要な情報を書いていなく「こんな程度の情報じゃ答られんよ」ということもあるかもしれませんが、その際は改めて訊き直して頂けると幸いです。

乱文・雑文を失礼致しました。どうかよろしくお願いいたします。

SooA

Re:DxLib.lib リンカエラー…?

#2

投稿記事 by SooA » 16年前

リビルドは行いましたか?

カズ

Re:DxLib.lib リンカエラー…?

#3

投稿記事 by カズ » 16年前

お返事ありがとうございます。

リビルドというのは、私が認識している範囲だと
[ビルド]→[ソリューションのリビルド]
[ビルド]→[RyuJinのリビルド]
[ビルド]→[プロジェクトのみ]→[RyuJinのみをリビルド]

これでしょうか?もしもこれのことならば、それぞれ行っております。

朽木

Re:DxLib.lib リンカエラー…?

#4

投稿記事 by 朽木 » 16年前

前に似たような記事があるので、探して試してみてはいかがでしょうか。

@@

SooA

Re:DxLib.lib リンカエラー…?

#5

投稿記事 by SooA » 16年前

ソリューションのクリーン(中間ファイルが全て削除できます。)を
行ってもダメでしょうか?

以前にも同じ症状の質問がありましたが、
解決したのかしないのか判らないままの状態ですね><;
http://www.play21.jp/board/formz.cgi?ac ... &rln=31203

SooA

Re:DxLib.lib リンカエラー…?

#6

投稿記事 by SooA » 16年前

ダウンロードして確認してみました。
プロジェクト内の(ソリューションエクスプローラ)
リソースファイルにDXライブラリのファイルが登録されているので
全て消してリビルドしてみてください。

カズ

Re:DxLib.lib リンカエラー…?

#7

投稿記事 by カズ » 16年前

SooA様、朽木様お返事ありがとうございます。

>朽木様
恐らくSooA様のリンクしてくださった記事やそれに類する記事だと思うのですが、私が発見し、かつ理解できた投稿では解決いたしませんでした。

リビルドも前記事から既に行っていましたが、、、もう一度やってもやはり駄目なようです。
お手数かけましてすみません、そしてありがとうございます。

>SooA様
ソリューションのクリーンもやってみましたがやはりダメでした…
そちらのリンク先の記事は調べてる最中に何度か拝見いたしましたが…そうなんですよね、いまいち解決したのかしてないのか分からないのです…。症状が同じなので解決しているようなら現状と比較して相違点が分かるかも…と思っていたのですが、結局分からずじまいの直らずじまいで…。

 >..\include\
 >はいらないと思います

という投稿の意味するところも私の知識では理解できませんでした。
Windowsアプリケーションも、可能性の一つとしては考えましたが、DLしてきたslnなので大丈夫だと判断しております。

 >原因はこれかな
 >龍神録プログラミングの館のソースであればincludeフォルダを作ってその中にヘッダやライブラリを入れるように記述してあるのでソースだけコピーしてもエラーになります

こちらの記事は、DLしてきたslnと同じフォルダ内の『mydat』内部にある『include』だと判断して『プロジェクトに追加すべきファイル_VC用』の中身の「.h」や「.lib」をコピーしてみたのですが、出来ませんでした。

何が悪いんでしょうかね…そろそろ情報系の専門学校に通うのですが、なんだか先行き不安になってきました…

カズ

Re:DxLib.lib リンカエラー…?

#8

投稿記事 by カズ » 16年前

>SooA様<No.31452>
お手数かけて申し訳ありません、加えてありがとうございます。

>リソースファイルにDXライブラリのファイルが登録されているので
>全て消してリビルドしてみてください。

了解しました、本当にありがとうございます。
確認なのですが、slnファイル内のリソースフォルダ下部を空っぽにしてソリューションのリビルドということで宜しいのでしょうか?

カズ

Re:DxLib.lib リンカエラー…?

#9

投稿記事 by カズ » 16年前

>SooA様<No.31452>
バックアップをとり、教えていただいた通りに行った結果、エラーを解消することができました。
本当にありがとうございます。
社交的に良く使われる言葉なのですが、本当に、心から感謝致します。
ありがとうございます。

調べている時に「LNK1104エラーは、他で起動していると上書きできずにエラーを出す」というような内容(すみません、色々読んだので混同しています。間違っていたらすみません)を拝見しました。
そこで、自分なりの見解なのですが、slnファイルをVisual C++で開いていることで、リソースフォルダ内のファイルも起動させ、結果的に「上書きできない状態」、上記の状態になっていた。だからエラーが起きたと思いました。

とにかく、解決したのでとても助かりました。

しかし、やはり原因が分かっていれば後に自分にも誰かにも役に立つかも…

いずれにしても、ありがとうございました。本当に助かりました。

また質問を書き込むかもしれません、その時は親切にしていただけると嬉しいです。

SooA

Re:DxLib.lib リンカエラー…?

#10

投稿記事 by SooA » 16年前

プロジェクトを開いて「ソリューションエクスプローラ」タブを開くと

■プロジェクト名
 +ソースファイル
 +ヘッダーファイル
 +リソースファイル

という項目がありますよね?
リソースファイルにDXライブラリ関係のファイルが登録されています、
パスを通している場合は必要ありませんので登録から外します。
(ファイルそのものは削除してもしなくてもかまいません。)

SooA

Re:DxLib.lib リンカエラー…?

#11

投稿記事 by SooA » 16年前

あ、遅かったw

解決してなによりです^^

カズ

Re:DxLib.lib リンカエラー…?

#12

投稿記事 by カズ » 16年前

>SooA様
本当にありがとうございました!

http://www.play21.jp/board/formz.cgi?ac ... &rln=31203

こちらにもあるように、同じ症状があったので僭越ながらまとめさせていただきます。

コンパイラ:Visual C++ Express Edition 2008
ライブラリ:DXライブラリ
を用いて、『http://dixq.net/rp/ojectのZIPをダウンロードして編集するという形をとります。そして『プロジェクトに追加すべきファイル_VC用』をパス登録し、ビルド、あるいはリビルド時に

     LINK : fatal error LNK1104: ファイル '..\include\DxLib.lib' を開くことができません。

というエラーが発生した場合は『プロジェクト名』.sln内のソリューションエクスプローラにある

■プロジェクト名
 ├ソースファイル
 ├ヘッダーファイル
 └リソースファイル

このリソースファイルの中身を登録から外すか、削除し、『ソリューションのリビルド』を行えばエラーは起こらずにリビルドが終了します。

ありがとうございました。

閉鎖

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