トップページ > 記事閲覧
DxUseCLib.lib のコンパイルについて
名前:kaiser 日時: 2022/04/14 20:43

お世話になっております 題名の件ですが上記LIBを作成しようとするためDxUseCLib スタティックリンクライブラリについて.txtの通り必要なソースを用意しビルドすると下記エラーが出るのですがどうすればよいでしょうか? 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(176): error C2061: 構文エラー : 識別子 'PMREAPHYSICS_INFO' 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(516): error C2061: 構文エラー : 識別子 'PMREAPHYSICS_INFO' 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(518): error C2065: 'pPhysics' : 定義されていない識別子です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(518): error C2227: '->BulletInfo' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 1> 型は ''unknown-type'' です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(520): error C2065: 'pPhysics' : 定義されていない識別子です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(520): error C2227: '->RigidBodyType' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 1> 型は ''unknown-type'' です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(520): error C2065: 'pPhysics' : 定義されていない識別子です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(520): error C2227: '->NoCopyToBone' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 1> 型は ''unknown-type'' です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(524): error C2065: 'pPhysics' : 定義されていない識別子です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(524): error C2227: '->Bone' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 1> 型は ''unknown-type'' です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(524): error C2227: '->LocalWorldMatrix' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(539): error C2061: 構文エラー : 識別子 'PMX_REAPHYSICS_INFO' 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(541): error C2065: 'pPhysics' : 定義されていない識別子です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(541): error C2227: '->BulletInfo' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 1> 型は ''unknown-type'' です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(543): error C2065: 'pPhysics' : 定義されていない識別子です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(543): error C2227: '->Base' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 1> 型は ''unknown-type'' です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(543): error C2227: '->RigidBodyType' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(543): error C2065: 'pPhysics' : 定義されていない識別子です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(543): error C2227: '->NoCopyToBone' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 1> 型は ''unknown-type'' です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(547): error C2065: 'pPhysics' : 定義されていない識別子です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(547): error C2227: '->Bone' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 1> 型は ''unknown-type'' です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(547): error C2227: '->LocalWorldMatrix' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(787): error C2065: 'DX_MODELLOADER3_PMPHYSICS_INFO' : 定義されていない識別子です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(787): error C2065: 'MLPhysicsInfo' : 定義されていない識別子です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(788): error C2062: 型 'int' は不要です。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(790): error C2143: 構文エラー : ';' が '{' の前にありません。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(790): error C2447: '{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?) 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(907): error C2065: 'DX_MODELLOADER3_PMPHYSICS_INFO' : 定義されていない識別子です。 ................... またDxUseCLibPhysics.cpp内のbullet-2.75の型ではないため手動にてD_を外してビルドしました 外さない場合下記エラーが出ます 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(56): error C2143: 構文エラー : ';' が '*' の前にありません。 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(56): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>e:\work\work_dxlib\dxlibmake\dxuseclibphysics.cpp(56): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません ................... 上記よろしくお願いいたします
メンテ

Page: 1 |

Re: DxUseCLib.lib のコンパイルについて ( No.1 )
名前:管理人 日時:2022/04/15 00:02

PMREAPHYSICS_INFO という識別子はDXライブラリのソースの中に存在せず、dxuseclibphysics.cpp の 176行目にあるのは PMD_READ_PHYSICS_INFO なので、なぜ PMREAPHYSICS_INFO という識別子になってしまうのか謎ですね… お使いの開発環境( Visual Studio 2019 など )はなんでしょうか?
メンテ
Re: DxUseCLib.lib のコンパイルについて ( No.2 )
名前:kaiser 日時:2022/04/15 15:18

環境はVSの2010で行っております(入っていたプロジェクトは2010なので) 一応20219、2022でも同様のえらーがでました
メンテ
Re: DxUseCLib.lib のコンパイルについて ( No.3 )
名前:kaiser 日時:2022/04/15 15:48

なんかみたところ最新のZIPを再度落としたところやはり176行目にあるのはPMD_READ_PHYSICS_INFOではなくPMREAPHYSICS_INFOとなっていますね
メンテ
Re: DxUseCLib.lib のコンパイルについて ( No.4 )
名前:kaiser 日時:2022/04/15 16:02

失礼しました。どうやらD_btRigidBody等のbullet-2.75に対応していない型を一括変換でD_を置換したため上記えらーが出ておりました D_btRigidBody等のD_がついている部分はどこかヘッダにbulletの変換かtype defがあるのでしょうか?
メンテ
Re: DxUseCLib.lib のコンパイルについて ( No.5 )
名前:管理人 日時:2022/04/16 03:06

原因が判明したようで何よりです > D_btRigidBody等のD_がついている部分はどこかヘッダにbulletの変換かtype defがあるのでしょうか? いえ、ありません 全部手作業で D_ を Bullet Physics のクラスや構造体などの識別子の先頭に付けました ( Bullet Physics を使用した物理機能を実装した当時の私が、『DXライブラリとは全く関係の無い形で Bullet Physics を使用したい方が居られた際に、DXライブラリで使用している Bullet Physics と 名前が競合してしまうから、DXライブラリが使用する Bullet Physics の識別子の先頭には D_ を付けよう』と 要らぬ配慮をしたがためにこのようなことに… ) こちらに DxUseCLib のビルドに必要な最小限の libpng や libjpeg などのヘッダファイルと DXライブラリのソースファイルも入れて DxUseCLib.lib をビルドするように設定した Visual Studio 2019 用のプロジェクトファイルも含まれる zipファイルをアップしましたので、 よろしければこちらの zipファイルの中のヘッダファイルを使用してください m(_ _;m ( Bullet Physics のヘッダファイルは識別子の先頭に D_ がついた状態のものになっています ) https://dxlib.xsrv.jp/temp/DxMakeUseCLib.zip
メンテ
Re: DxUseCLib.lib のコンパイルについて ( No.6 )
名前:kaiser 日時:2022/04/16 13:16

ありがとうございます。 ぜひ使わせてもらいます つきましてはOgg Vorbisの追加で失敗していたためこちらどのようにすればよいかご教授頂けますでしょうか? 添付ファイルのDxUseCLib スタティックリンクライブラリについて.txtを参考のもとSVNにてリビジョンを指定し svn.xiph.org/trunk/ogg 使用リビジョン 19150 svn.xiph.org/trunk/vorbis 使用リビジョン 19171 svn.xiph.org/trunk/theora 使用リビジョン 19181 をPULLしLinkしたのですが 重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 エラー LNK2001 外部シンボル "int __cdecl ConvertProcessSoundConvert_OGG(struct DxLib::SOUNDCONV *)" (?ConvertProcessSoundConvert_OGG@@YAHPAUSOUNDCONV@DxLib@@@Z) は未解決です dxmake E:\work\work_dxlib\dxmake\DxLib_d.lib(DxSoundConvert.obj) 1 等DxSoundConvert.cppで使われている #ifndef DX_NON_OGGVORBIS case SOUND_METHODTYPE_OGG : res = ConvertProcessSoundConvert_OGG( SoundConv ) ; break ; などの関数が見当たらないのですが。 DxCompileConfig.h にある // Ogg Vorbis データを使用しない方は次のコメントをはずしてください // ※DxUseCLib.lib も再コンパイルする必要があります //#define DX_NON_OGGVORBIS をコメントを外せば動作できました ※下記はコメントを外さなくてもビルドできました // Ogg Theora データを使用しない方は次のコメントをはずしてください // ※DxUseCLib.lib も再コンパイルする必要があります //#define DX_NON_OGGTHEORA ご多忙とは思いますがよろしくお願いします
メンテ
Re: DxUseCLib.lib のコンパイルについて ( No.7 )
名前:管理人 日時:2022/04/17 16:55

> DxSoundConvert.cppで使われている >  > #ifndef DX_NON_OGGVORBIS >  case SOUND_METHODTYPE_OGG : res = ConvertProcessSoundConvert_OGG( SoundConv ) ; break ; >  > などの関数が見当たらないのですが。 ConvertProcessSoundConvert_OGG は DxUseCLibOgg.cpp に含まれているのですが、 DxUseCLibOgg.cpp をプロジェクトに追加されていない、ということはないでしょうか?
メンテ
Re: DxUseCLib.lib のコンパイルについて ( No.8 )
名前:kaiser 日時:2022/04/17 18:01

>ConvertProcessSoundConvert_OGG は DxUseCLibOgg.cpp に含まれているのですが、 >DxUseCLibOgg.cpp をプロジェクトに追加されていない、ということはないでしょうか? 失礼しました 上記含めビルドしたところ正常にビルドできました お騒がせしましてもうしわけありませんでした。
メンテ

Page: 1 |

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

   クッキー保存