トップページ > 記事閲覧
DXライブラリの軽量化再コンパイルについて
名前:チップ 日時: 2015/01/04 07:29

DXライブラリの機能をコンパクトに軽量化して使いたいのですが DxUseCLib.lib はどうやって再コンパイルすればいいのでしょうか? 教えて頂けると助かります。よろしくお願いします。
メンテ

Page: 1 |

Re: DXライブラリの軽量化再コンパイルについて ( No.1 )
名前:管理人 日時:2015/01/06 01:49

DXライブラリのソースパッケージの DxLibMake フォルダの中に 「DxUseCLib スタティックリンクライブラリについて.txt」 というファイルがあり、そこに DxUseCLib.lib について記載されていますので よろしければご覧ください 尚、libjpeg の使用バージョンについて 9a となっていますが、9 の誤りです m(_ _;m ( 現在アップされているソースパッケージ内の txt はもう修正してあります ) 「DxUseCLib スタティックリンクライブラリについて.txt」の内容で不明な点がありましたらお訊ねください
メンテ
Re: DXライブラリの軽量化再コンパイルについて ( No.2 )
名前:チップ 日時:2015/01/06 19:36

ご返答ありがとうございます。 教えて頂いた方法でヘッダを修正して軽量化バージョンのスタティックリンクライブラリを作成したのですが、 これと再コンパイルしたDXライブラリを使ってコンパイルすると必ず下記のエラーが出てしまいます。 1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) は既に LIBCMT.lib(typinfo.obj) で定義されています。 1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) は既に LIBCMT.lib(typinfo.obj) で定義されています。 fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== プログラム自体は動作テストのため本当に立ち上がって終了するだけの単純なものです。 何か問題点にお心当たりはありますでしょうか? 宜しくお願い致します。
メンテ
Re: DXライブラリの軽量化再コンパイルについて ( No.3 )
名前:管理人 日時:2015/01/07 00:06

動作テスト用のプロジェクトで使用するランタイムライブラリが「マルチスレッド DLL (/MD)」に なってしまっているのが原因だと思います プロジェクトのプロパティの「構成プロパティ」→「C/C++」→「コード生成」を選択した状態で 右側に表示される「ランタイムライブラリ」の設定を「マルチスレッド (/MT)」に変更してビルドしてみてください
メンテ
Re: DXライブラリの軽量化再コンパイルについて ( No.4 )
名前:チップ 日時:2015/01/07 06:48

管理人様 動作テストプロジェクトの「ランタイムライブラリ」の設定は「マルチスレッド (/MT)」になっているようです。 ちなみにスタティックライブラリをダウンロードしたままの本来のものに戻すとエラーは出ずにコンパイルは通ります。
メンテ
Re: DXライブラリの軽量化再コンパイルについて ( No.5 )
名前:管理人 日時:2015/01/08 00:28

うーんそうでしたか ん?リンクエラーを改めて拝見すると・・・ ti_inst.cpp というファイルはありますでしょうか? ソリューションエクスプローラーに表示されている ti_inst.cpp にカーソルを合わせて右クリックを すると出てくるメニューの中に「プロパティ」があるので、クリックしてプロパティを表示してみてください その中にプロジェクトのプロパティと同じように「コード生成」の項目があり、「ランタイムライブラリ」の設定もできますので、 ランタイムライブラリの設定が「マルチスレッド DLL (/MD)」になってしまっていないか確認してみて頂けないでしょうか? ソースファイル別にランタイムライブラリの設定が行えることを失念していました・・・
メンテ
Re: DXライブラリの軽量化再コンパイルについて ( No.6 )
名前:チップ 日時:2015/01/08 05:59

お手数かけさせて何度もすみませんです… ti_inst.cpp というファイルはないです。 プログラムは下記の #include <stdio.h> #include <stdlib.h> #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } ほぼ何もないものでも同様のエラーが出ますので やはりスタィックライブラリの作成で何かしくじっているのだろうなと・・・。
メンテ
Re: DXライブラリの軽量化再コンパイルについて ( No.7 )
名前:チップ 日時:2015/01/08 06:03

軽量化のためにとりあえずUseClibに関わる Defineを外して下記のソースをスタティックライブラリとしてコンパイルしたのですが何かこの時点でしくじっているのでしょうか。 Libファイルは無事出来ていたのですが・・・ DxUseCLib.cpp DxUseCLibOgg .cpp DxUseCLibPhysics.cpp DxUseCStrmBaseFilter.cpp Windows\DxUseCLibOggD3D9.cpp Windows\DxUseCLibOggD3D11.cpp Windows\DxUseCLibOggWin.cpp
メンテ
Re: DXライブラリの軽量化再コンパイルについて ( No.8 )
名前:管理人 日時:2015/01/09 00:06

ti_inst.cpp はプロジェクトにありませんでしたか、失礼しました・・・ > Defineを外して下記のソースをスタティックライブラリとしてコンパイルしたのですが何かこの時点でしくじっているのでしょうか。 そうですね・・・ DxUseCLib.lib を作成するプロジェクトの件の設定が「マルチスレッド DLL (/MD)」になってしまっていませんでしょうか? あと、DxCompileConfig.h の設定を変更した場合は DxUseCLib.lib とあわせて DxLib.lib もコンパイルしなければ ならないのですが、チップさんは DxUseCLib.lib だけをコンパイルされているのでしょうか?
メンテ
Re: DXライブラリの軽量化再コンパイルについて ( No.9 )
名前:チップ(解決済) 日時:2015/01/09 07:49

>DxUseCLib.lib を作成するプロジェクトの件の設定が「マルチスレッド DLL (/MD)」になってしまっていませんでしょうか? ご指摘の通りでした。 DxUseCLib.libの設定をマルチスレッド(/MT)」にしたところ無事にコンパイルが通りました。 こちらの素人質問に逐一ご丁寧に返答頂き 本当にありがとうございました!
メンテ

Page: 1 |

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

   クッキー保存