Re: DXライブラリを使用した.Libを作ったのですが・・・ ( No.1 ) |
- 名前:管理人 日時:2017/02/18 16:13
うーん幾つか原因は思い当たりますが、候補を絞りたいので幾つかご質問をさせてください m(_ _)m
1.エラーが発生するのはスタティックリンクライブラリを作成した際でしょうか?
それともスタティックリンクライブラリを使用するプログラムをビルドした際でしょうか?
2.使用されている開発環境は何でしょうか? ( VisualStudio Express 2013 for Windows Desktop や BorlandC++ など )
3.スタティックリンクライブラリのプログラムの中でDXライブラリの関数を使用していますでしょうか?
あと、よろしければエラーの一部( 10個くらい )をこちらの掲示板にコピー&貼り付けしていただけないでしょうか?
エラーの内容から原因がわかるかもしれませんので…
|
Re: DXライブラリを使用した.Libを作ったのですが・・・ ( No.2 ) |
- 名前:ななしのなし 日時:2017/02/18 21:07
1.スタティックリンクライブラリを使用時です。
また、インクルードしただけだとエラーは発生しませんでした。
Lib内の関数を使っていないからと思われます。
2.Visual Studio Community 2015です。
3.使用しています。ちなみに使用していないライブラリは前述の警告のみで、問題なく使えます。
以下、エラー内容の一部です。圧倒的に未解決が多いです
(※ Def_Circleがソリューションのあるフォルダです)
・LNK2038(不一致)
エラー LNK2038 '_ITERATOR_DEBUG_LEVEL' の不一致が検出されました。値 '0' が 2 の値 'DxUseCLib_vs2015_x86_d.lib(DxUseCLib.obj)' と一致しません。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\libbulletcollision_vs2015_x86.lib(btSimulationIslandManager.obj) 1
エラー LNK2038 'RuntimeLibrary' の不一致が検出されました。値 'MT_StaticRelease' が MTd_StaticDebug の値 'DxUseCLib_vs2015_x86_d.lib(DxUseCLib.obj)' と一致しません。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\libbulletcollision_vs2015_x86.lib(btSimulationIslandManager.obj) 1
エラー LNK2038 '_ITERATOR_DEBUG_LEVEL' の不一致が検出されました。値 '0' が 2 の値 'DxUseCLib_vs2015_x86_d.lib(DxUseCLib.obj)' と一致しません。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\libbulletcollision_vs2015_x86.lib(btBvhTriangleMeshShape.obj) 1
エラー LNK2038 'RuntimeLibrary' の不一致が検出されました。値 'MT_StaticRelease' が MTd_StaticDebug の値 'DxUseCLib_vs2015_x86_d.lib(DxUseCLib.obj)' と一致しません。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\libbulletcollision_vs2015_x86.lib(btBvhTriangleMeshShape.obj) 1
エラー LNK2038 '_ITERATOR_DEBUG_LEVEL' の不一致が検出されました。値 '0' が 2 の値 'DxUseCLib_vs2015_x86_d.lib(DxUseCLib.obj)' と一致しません。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\libbulletcollision_vs2015_x86.lib(btRaycastCallback.obj) 1
エラー LNK2038 'RuntimeLibrary' の不一致が検出されました。値 'MT_StaticRelease' が MTd_StaticDebug の値 'DxUseCLib_vs2015_x86_d.lib(DxUseCLib.obj)' と一致しません。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\libbulletcollision_vs2015_x86.lib(btRaycastCallback.obj) 1
エラー LNK2038 '_ITERATOR_DEBUG_LEVEL' の不一致が検出されました。値 '0' が 2 の値 'DxUseCLib_vs2015_x86_d.lib(DxUseCLib.obj)' と一致しません。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\libbulletcollision_vs2015_x86.lib(btContinuousConvexCollision.obj) 1
エラー LNK2038 'RuntimeLibrary' の不一致が検出されました。値 'MT_StaticRelease' が MTd_StaticDebug の値 'DxUseCLib_vs2015_x86_d.lib(DxUseCLib.obj)' と一致しません。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\libbulletcollision_vs2015_x86.lib(btContinuousConvexCollision.obj) 1
・LNK2001(未解決)
エラー LNK2001 外部シンボル "@_RTC_CheckStackVars@8" は未解決です。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\Main.obj 1
エラー LNK2001 外部シンボル "@__security_check_cookie@4" は未解決です。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\celt_vs2015_x86.lib(vq.obj) 1
エラー LNK2001 外部シンボル "__RTC_CheckEsp" は未解決です。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\Main.obj 1
エラー LNK2001 外部シンボル "__RTC_InitBase" は未解決です。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\Main.obj 1
エラー LNK2001 外部シンボル "__RTC_Shutdown" は未解決です。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\Main.obj 1
エラー LNK2001 外部シンボル "___security_cookie" は未解決です。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\celt_vs2015_x86.lib(kiss_fft.obj) 1
エラー LNK2001 外部シンボル "___security_cookie" は未解決です。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\celt_vs2015_x86.lib(bands.obj) 1
エラー LNK2001 外部シンボル "___security_cookie" は未解決です。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\celt_vs2015_x86.lib(quant_bands.obj) 1
エラー LNK2001 外部シンボル "___security_cookie" は未解決です。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\celt_vs2015_x86.lib(celt_lpc.obj) 1
エラー LNK2001 外部シンボル "__fltused" は未解決です。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\celt_vs2015_x86.lib(celt_lpc.obj) 1
エラー LNK2001 外部シンボル "__fltused" は未解決です。 Def_Circle D:\★DOWNLOADS\☆ゲーム開発\☆ゲームソリューション\Def_Circle\celt_vs2015_x86.lib(vq.obj) 1
 |
Re: DXライブラリを使用した.Libを作ったのですが・・・ ( No.3 ) |
- 名前:管理人 日時:2017/02/20 01:18
ご返答ありがとうございます
スタティックリンクライブラリをビルドした際にプロジェクトの設定からプリプロセッサの定義に _ITERATOR_DEBUG_LEVEL=0 を追加したり、
#define _ITERATOR_DEBUG_LEVEL (0) を記述していたりしないでしょうか?
恐らく、エラーを拝見する限りではどちらかされているのですが、この場合そのスタティックリンクライブラリを
使用するプロジェクトの方でもプリプロセッサの定義に _ITERATOR_DEBUG_LEVEL=0 を追加する必要があります
スタティックリンクライブラリを使用するプロジェクトを開いた状態でメニューから
『プロジェクト(P)』→『(プロジェクト名)のプロパティ(E)...』を選択してプロジェクトの
プロパティウインドウを開いて、左側のリストから『構成プロパティ』→『C/C++』→『プリプロセッサ』を
選択して、右側の『プリプロセッサの定義』の項目に『_ITERATOR_DEBUG_LEVEL=0;』を追加して『OK』ボタンを押してください
この状態でビルドすれば載せていただいた LNK2038 のエラーは発生しなくなると思います
LNK2001 のエラーも、一緒に無くなる可能性もあります…
|
Re: DXライブラリを使用した.Libを作ったのですが・・・ ( No.4 ) |
- 名前:ななしのなし 日時:2017/02/20 20:59
ありがとうございます。正常にビルドができました。
もう一つお聞きしたいのですが、前述のRuntimeLibraryの不一致でリリースかデバッグかしかビルドが出来ません。
これはリリース用とデバッグ用で2つ.libを作成して、プリプロセッサで使い分けないといけないのでしょうか?
|
Re: DXライブラリを使用した.Libを作ったのですが・・・ ( No.5 ) |
- 名前:管理人 日時:2017/02/21 00:55
> これはリリース用とデバッグ用で2つ.libを作成して、プリプロセッサで使い分けないといけないのでしょうか?
はい、その通りです
DXライブラリもデバッグビルド用の lib とリリースビルド用の lib が分かれているのはその為です…
|
Re: DXライブラリを使用した.Libを作ったのですが・・・ ( No.6 ) |
- 名前:ななしのなし(解決) 日時:2017/02/21 06:26
なるほど、やむを得ない仕様なんですね・・・。
了解です。ご助力ありがとうございました!
|