トップページ > 記事閲覧
未解決の外部参照エラー
名前:aruaru 日時: 2019/03/08 15:21

はじめまして。 ver3.18 を使用していたのですが3Dモデルの読み込みバグがver3.20bのモデルビューワでは直っていたので、VC++2017で制作中のプロジェクトの 「プロジェクトに追加すべきファイル_VC用」フォルダをver3.20aのものに置き換えたのですが、以下のようなエラーが出てビルド出来なくなってしまいました。 error LNK2001: 外部シンボル ""int __cdecl DxLib::DrawRotaGraph(int,int,double,double,int,int,int)" (?DrawRotaGraph@DxLib@@YAHHHNNHHH@Z)" は未解決です。 error LNK2001: 外部シンボル ""int __cdecl DxLib::DrawRotaGraph2(int,int,int,int,double,double,int,int,int)" (?DrawRotaGraph2@DxLib@@YAHHHHHNNHHH@Z)" は未解決です。 error LNK2001: 外部シンボル ""int __cdecl DxLib::DrawBillboard3D(struct DxLib::tagVECTOR,float,float,float,float,int,int,int)" (?DrawBillboard3D@DxLib@@YAHUtagVECTOR@1@MMMMHHH@Z)" は未解決です。 解決方法をご教示いただければ幸いです。
メンテ

Page: 1 |

Re: 未解決の外部参照エラー ( No.1 )
名前:NTG 日時:2019/03/08 22:59

3.20a正式版をまっさらなフォルダに展開してビルドしましたが問題なくビルドできました。 最新Temp版 (3.20b) も同様にOKです。 今使っているDXLIBのフォルダをいったんリネームするかどこかに移してとりあえず残して置き まっさらに展開してトライしてみてはどうでしょうか
メンテ
Re: 未解決の外部参照エラー ( No.2 )
名前:aruaru 日時:2019/03/09 08:41

NTG様 ご教示ありがとうございます。 別のディレクトリに新しくプロジェクトを立ち上げ初期設定し、ver3.20aも新たに展開してやってみました。 新しいプロジェクトに新しいプログラム(DrawRotaGraphやDrawBillboard3Dなど)を書く分にはこのエラーが出ないのですが、 ver3.18で問題なく動いていたソースファイルやヘッダーファイルなどをコピーして、 既存の項目としてまっさらなプロジェクトに追加してビルドすると上記のエラーが出てしまいます。 ver3.18に戻すとエラーがなくなります。 なお、DXアーカイブファイルは使用停止して、画像データはディレクトリに直置きしています。 3Dモデルの読み込み不具合でずっと悩まされていたので、なんとかして不具合の出ないver3.20版で制作の続きをやりたいです。 他に考えられる原因と解決策はありますでしょうか?
メンテ
Re: 未解決の外部参照エラー ( No.3 )
名前:aruaru 日時:2019/03/09 09:16

追記: 別バージョンを色々試したところ、このエラーが出るのはver3.19bからのようです。 ver3.19まではエラーがでませんでした。(3Dモデルの不具合はver3.19もver3.18と同様でした)
メンテ
Re: 未解決の外部参照エラー ( No.5 )
名前:管理人 日時:2019/03/10 03:35

> error LNK2001: 外部シンボル ""int __cdecl DxLib::DrawRotaGraph(int,int,double,double,int,int,int)" (?DrawRotaGraph@DxLib@@YAHHHNNHHH@Z)" は未解決です。 こちらのエラーで表示されている DrawRotaGraph では引数の数が 7個となっていますが、 Ver3.20a では 8個なので Ver3.20a のファイルでコンパイルされていないファイルがあるようです VisualStudio のメニューの 『プロジェクト(P)』→『(プロジェクト名)のプロパティ(E)...』 で プロジェクトのプロパティを開いて 『構成プロパティ』→『C/C++』→『全般』にある『追加のインクルード ディレクトリ』 にあるDXライブラリのフォルダパスが、Ver3.20a のフォルダを指しているか確認してみてください あと、『構成プロパティ』→『リンカー』→『全般』にある『追加のライブラリ ディレクトリ』 にあるDXライブラリのフォルダパスも、Ver3.20a のフォルダを指しているか確認してみてください それでも駄目でしたら、メニューの『ビルド(B)』→『ソリューションのリビルド(R)』で プロジェクトをリビルドしてみてください それでも駄目でしたら、正しく Ver3.20a がダウンロードできなかったか、正常に解凍できなかった 可能性がありますので、一旦DXライブラリ関係のファイルを削除した後、改めて Ver3.20a を ダウンロードして試してみてください m(_ _)m
メンテ
Re: 未解決の外部参照エラー ( No.6 )
名前:aruaru 日時:2019/03/10 10:30

管理人様 ご教示ありがとうございます。 もう一度ダウンロードから全て試してみましたが結果は同じでした。 上記追記にも書きましたが、もう一度公開されている別バージョンを色々試したところ、このエラーが出るのはver3.19bからのようです。 ver3.19まではエラーがでませんでした。 9年ほど前からDXライブラリを使わせていただいているので、もしかしたら私のコードの書き方が古いのかとも思いましたが、あれこれ弄っても結果は同じでした。 何か他に考えられる原因と解決策はありますでしょうか?
メンテ
Re: 未解決の外部参照エラー ( No.7 )
名前:NTG 日時:2019/03/10 12:59

DrawRotaGraphの引数が7個版の関数を取ってこようとしてエラーになるわけですから、 どこかに「7個版である」という何かの設定が残っているのではと思います。 確認して欲しい点として思いつくのは、以下のようなところでしょうか。 ・「3.19」でビルドし、実行し、できたLog.txtの5行目は3.19と書かれているかどうか?  (ここが3.18なら、そもそもうまくいっていない) ・3.20aに3.18のソースを追加するとうまくいかない件に関して  @追加したソースで、DrawRotaGraphを書いている行は、実際にはどう書いているか?(引数は何個?)  AそのDrawRotaGraphの部分にマウスカーソルを置いてしばらくすると表示される   関数の宣言文は、引数は何個になっているか?(7? 8?)  Bその行の付近に、DrawRotaGraphで8個の引数を指定して書くとビルドは通るか?  C各ソースの #include "DxLib.h" と書いてある行を右クリックし、ドキュメント "DxLib.h" を開く、を   クリックし、表示されたファイルの5行目に書いてあるバージョンは3.20aになっている?  D3.20aの「プロジェクトに追加すべきファイル_VC用」の中にある xxxx.lib を全部どこかに移して   xxx.hのみ残す。これでリビルドをかけた時、xxxxxxxxxxを開くことができません、と表示されるが   そのファイル名は DxDrawFucc_vs2015_x86_MTd.lib などのように MTd系か?
メンテ
Re: 未解決の外部参照エラー ( No.8 )
名前:aruaru 日時:2019/03/10 13:39

NTG様 3.19でビルド成功時のログは 「12: DXライブラリ Ver3.19 」 です。 @DrawRotaGraphの使用箇所の引数は7個か6個で書いてあります。 Aマウスカーソルを置いて表示される関数の宣言文の引数は7個です。 B8個の引数を指定して書いてビルドを実行すると 「error C2660: 'DxLib::DrawRotaGraph': 関数に 8 個の引数を指定できません。」 とエラーが出ます。 C #include "DxLib.h" を右クリックして開いた "DxLib.h" に書いてあるバージョンは3.18のままです。 D「fatal error LNK1104: ファイル 'DxDrawFunc_vs2015_x86_MTd.lib' を開くことができません。」 と表示されます。
メンテ
Re: 未解決の外部参照エラー ( No.9 )
名前:aruaru 日時:2019/03/10 13:52

解決しました! 上記確認事項のCが変に思えたのでプロジェクトフォルダを探したら古いバージョンのDxLib.hファイルが紛れ込んでいました。 これを削除したらver3.20でビルドが通るようになりました! ver3.18で出ていたゲーム内の3Dモデルの不具合もちゃんと直ってました! お忙しい中、丁寧なご対応ありがとうございました! m(_ _)m
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存