トップページ > 過去ログ > 記事閲覧
DXが原因のリンクエラーか?
名前:Rion 日時: 2007/04/13 23:26

初めて投稿させていただきます。 DXライブを使ってプログラムを試していたところ、突然妙なリンクエラーが出てきてしましました。 初心者なので、どういう事なのかまったく分からないのですが、もしかしたらDXが関係しているのかと思って投稿させていただきました。 お分かりになる方いらっしゃいませんでしょうか。 animdraw.obj : error LNK2019: 未解決の外部シンボル __imp___CrtDbgReportW が関数 "public: int const & __thiscall std::_Vector_const_iterator<int,class std::allocator<int> >::operator*(void)const " (??D?$_Vector_const_iterator@HV?$allocator@H@std@@@std@@QBEABHXZ) で参照されました。 Main.obj : error LNK2001: 外部シンボル "__imp___CrtDbgReportW" は未解決です。 animdraw.obj : error LNK2019: 未解決の外部シンボル __imp__memmove_s が関数 "int * __cdecl std::_Copy_backward_opt<int *,int *,struct std::random_access_iterator_tag>(int *,int *,int *,struct std::random_access_iterator_tag,struct std::_Scalar_ptr_iterator_tag,struct std::_Range_checked_iterator_tag)" (??$_Copy_backward_opt@PAHPAHUrandom_access_iterator_tag@std@@@std@@YAPAHPAH00Urandom_access_iterator_tag@0@U_Scalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z) で参照されました。 Main.obj : error LNK2001: 外部シンボル "__imp__memmove_s" は未解決です。 C:\Documents and Settings\FREIA\My Documents\Visual Studio 2005\Projects\GameFrame\Debug\GameFrame.exe : fatal error LNK1120: 外部参照 2 が未解決です。 このエラーのおかげでまったく先に進めないのでとても困っています。

Page: 1 |

Re: DXが原因のリンクエラーか? ( No.1 )
名前:管理人 日時:2007/04/15 18:19

 Rionさん始めまして、DXライブラリの管理人です。  恐らく原因はDXライブラリだと思います。  こちらに同様の不具合に関するご報告をお受けしたときのやり取りが ありますので、宜しければご覧になってみて下さい。m(_ _)m http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=383 (主に使用するランタイムライブラリの変更と DxLib.h の先頭付近にある //#define DX_USE_VISUALC_MEM_DEBUG のコメントを外すことが対処方法となります)
Re: DXが原因のリンクエラーか? ( No.2 )
名前:Rion 日時:2007/04/20 00:15

お返事ありがとうございました。 早速試してみましたが、依然として以下のようなエラーが出ています。 libpng.lib(pngerror.obj) : error LNK2019: 未解決の外部シンボル __iob が関数 _png_default_error で参照されました。 libpng.lib(pngrutil.obj) : error LNK2001: 外部シンボル "__iob" は未解決です。 libjpeg.lib(jerror.obj) : error LNK2001: 外部シンボル "__iob" は未解決です。 C:\Documents and Settings\FREIA\My Documents\Visual Studio 2005\Projects\GameFrame\Debug\GameFrame.exe : fatal error LNK1120: 外部参照 1 が未解決です。 エラーの内容が変わっていて、少し減ったのですが、いまだに4っつの未解決があります。 他に何か対処方があったら教えて頂けませんでしょうか。
Re: DXが原因のリンクエラーか? ( No.3 )
名前:管理人 日時:2007/04/20 11:29

 Rionさんどうも、DXライブラリの管理人です。  お使いのDXライブラリのバージョンは幾つでしょうか?  原因はハッキリとはわかっていませんが、もしかしたら 最新バージョンのDXライブラリであれば正常にコンパイルが 通るかもしれませんので、宜しければこちらのバージョンを お試しになってみて下さい。 http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)  お手数ですが、こちらのバージョンも DxLib.h の //#define DX_USE_VISUALC_MEM_DEBUG の コメントアウトを外してからコンパイルして下さい。m(_ _)m
Re: DXが原因のリンクエラーか? ( No.4 )
名前:crow 日時:2007/04/22 11:08

横から失礼します。 私は以前、DXライブラリとデバッグライブラリを併用できなくて困っていたのですが、 上にある対処法2つの他に、 DxLib.h 134行目(ver2.22d時)の #pragma comment( linker, "/NODEFAULTLIB:libcmt.lib" ) のコメントアウトを外したらコンパイルが通るようになりました。 (最新版では141行目のようです) 最新版ははじめからこれが対処されているようなので、 最新版では大丈夫かもしれませんね。
Re: DXが原因のリンクエラーか? ( No.5 )
名前:Rion 日時:2007/04/22 19:40

試してみましたが、以前として状況は変わりません。 う〜む、困りました。 もう一つ気になる事があるのですが・・・ これらのリンクエラーは本当に突然に出てきたのです。 それまでもいくつかプログラムを組んでいたのですが、DXライブの機能を問題なく使えていました。 ある時点で、突然出てきたのです。 何もしないうちに最初からこのようなエラーが出るのはわかるのですが、ある時点からいきなりこんなエラーが出るということがあるのでしょうか?
Re: DXが原因のリンクエラーか? ( No.6 )
名前:管理人 日時:2007/04/23 12:00

 Rion さんどうも、DXライブラリの管理人です。 > ある時点からいきなりこんなエラーが出るということがあるのでしょうか?  VisualStudio2005 は余り使っていないので分かりませんが、とりあえず 今まで別のバージョンを含め VisualStudio を使っていてそういうことがあった ことはありません。(突然起こったと思っても何かしら原因がありました)  リンクエラーが発生してしまうプロジェクトを直接拝見すれば何が原因か 分かるかもしれませんので、申し訳ありませんが宜しければプロジェクトの フォルダを丸ごと zip 形式などで圧縮したものを BQE00322(アットマーク)nifty.com に送って頂けないでしょうか?m(_ _)m
Re: DXが原因のリンクエラーか? ( No.7 )
名前:Rion 日時:2007/04/23 21:48

了解しました。 では、そのようにいたします。 もしかしたら、管理人さんもご存知のプログラムかもしれませんよ。
Re: DXが原因のリンクエラーか? ( No.8 )
名前:Rion 日時:2007/04/23 22:28

何度かファイルを送付しておくりましたが、どうもうまくいっていないような気がします。 圧縮ファイルはとどいていますでしょうか?
Re: DXが原因のリンクエラーか? ( No.9 )
名前:管理人 日時:2007/04/24 12:10

 Rionさんどうも、DXライブラリの管理人です。  いえ、届いていません。  もしかしたらメールサーバーの容量制限に引っかかっているのかもしれませんので、 宜しければコンパイルに必要なファイル(拡張子が cpp, h, sln, vcproj, lib)以外の ファイルをプロジェクトフォルダから除いた状態で圧縮してみて頂けないでしょうか?
Re: DXが原因のリンクエラーか? ( No.10 )
名前:Rion 日時:2007/04/24 18:23

どうやら今度こそ送る事ができたようです。 お手数おかけします。
Re: DXが原因のリンクエラーか? ( No.11 )
名前:管理人 日時:2007/04/26 19:36

 Rionさんどうも、DXライブラリの管理人です。  今度は届きました。  早速プロジェクトを拝見しましたところ、使用するランタイムライブラリが 「マルチスレッド デバッグ DLL(/MDd)」になっていたのが原因でした。  メニューから「プロジェクト」→「プロパティ」でプロジェクトのプロパティ ダイアログを開き、左側の項目から「構成プロパティ」→「C/C++」→ 「コード生成」を選択して、右側の設定項目の「ランタイムライブラリ」を 「マルチスレッド デバッグ(/MTd)」に変更することで正常にリンクすることが 出来ましたので、宜しければお試し下さい。
Re: DXが原因のリンクエラーか? ( No.12 )
名前:Rion 日時:2007/04/29 11:04

ありがとうございました! 無事に通りました。 これで先に進むことができます。 プロパティの設定なんかも影響するのですね・・・。 色々と丁寧にありがとうございました。 本当にお手数おかけしました。

Page: 1 |