トップページ > 記事閲覧
最新のライブラリでのリンクエラー
名前:kaiser 日時: 2017/08/30 16:28

先程のスレッドでも報告させていただきましたが ttp://dxlib.o.oo7.jp/temp/DxLibAndroidTest_x86.exe ttp://dxlib.o.oo7.jp/temp/DxLibAndroidTest_ARM.exe ともにVS2017にてビルドする際下記のエラーが出るのですがなにか他に設定する必要はありますでしょうか? 1>D:\prog\training\DxLibAndroidTest_x86/libDxLib.a(DxFont.o):DxFont.cpp:function DxLib::CreateFontToHandle_Static(DxLib::CREATEFONTTOHANDLE_GPARAM*, int, wchar_t const*, int, int, int, int, int, int, int): error: undefined reference to 'DxLib::CreateFontToHandle_PF(DxLib::CREATEFONTTOHANDLE_GPARAM*, DxLib::FONTMANAGE*, int)' 1>D:\prog\training\DxLibAndroidTest_x86/libDxLib.a(DxFont.o):DxFont.cpp:function DxLib::LoadFontDataFromMemToHandle_UseGParam_Static(DxLib::CREATEFONTTOHANDLE_GPARAM*, int, void const*, int, int, int): error: undefined reference to 'DxLib::CreateFontToHandle_PF(DxLib::CREATEFONTTOHANDLE_GPARAM*, DxLib::FONTMANAGE*, int)' 1>clang.exe : error : linker command failed with exit code 1 (use -v to see invocation) どうやらフォントの関数がないもようなのですが 失礼いたしました
メンテ

Page: 1 |

Re: 最新のライブラリでのリンクエラー ( No.1 )
名前:管理人 日時:2017/08/30 23:52

すみません、誤ってビルドの通らないバージョンをアップしていました 修正したバージョンをアップしましたので、よろしければこちらをお試しください m(_ _;m http://dxlib.o.oo7.jp/temp/DxLibAndroidTest_x86.exe // Android版 x86用 http://dxlib.o.oo7.jp/temp/DxLibAndroidTest_ARM.exe // Android版 ARM用
メンテ
Re: 最新のライブラリでのリンクエラー ( No.2 )
名前:kaiser 日時:2017/08/31 00:17

試させて頂きました 無事実機での確認が取れました が、、、、 今度は ttp://dxlib.o.oo7.jp/temp/DxLibAndroidTest_ARM.exe にてttp://dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=view&no=4067 と同様の現象が出ております ※x86は問題なくアニメーションしております 何度もすみません
メンテ
Re: 最新のライブラリでのリンクエラー ( No.3 )
名前:管理人 日時:2017/08/31 23:54

ビルドは正常にできた用で何よりです > 今度は > ttp://dxlib.o.oo7.jp/temp/DxLibAndroidTest_ARM.exe > にてttp://dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=view&no=4067 > と同様の現象が出ております > ※x86は問題なくアニメーションしております 手元の環境では ARM版も正常にアニメーションしました いくつかご質問させてください m(_ _)m 1.pmx や pmd ファイルの読み込みには空きメモリサイズがかなり必要です  実行された ARMの環境は搭載メモリは潤沢でしょうか?  ( DxLibModelViewer.exe で mv1 ファイルに変換したものは搭載メモリが少なくても大丈夫です ) 2.Android は Windowsと異なり英字の大文字・小文字が区別されます、  ファイル名は大文字・小文字も含めて問題ないでしょうか? 3.DXライブラリのファイルは確かに最新でしょうか?  最新の libDxLib.a と libDxUseCLib.a の更新日時は 2017/08/30 23:36 となっています 4.pmd, pmx, vmd ファイルの追加は VisualStudio のソリューションエクスプローラで  行いましたでしょうか?( エクスプローラを使って該当するフォルダに直接ファイルを  配置しても認識されないので )
メンテ
Re: 最新のライブラリでのリンクエラー ( No.4 )
名前:kaiser 日時:2017/09/04 04:55

お世話になっております 環境の問題かもしれませんが 1.に関してはエミュレータにてRAM2G VM Heap128Mを用意しています 2.に関しましてはpmdのファイル名は小文字にしております。 3.に関しましても日付が 2017/08/30 23:36となっております 4.にかんしましてもソリューションエクスプローラにて行いました 環境のせいかもしれませんので一度動作しなかったプロジェクトをお送りいたします ttp://xfs.jp/vqCfM3 ※Includeパスと追加ライブラリのパスは固定になっておりますすみません 環境のせいだとするとちょっと打つ手がなくなりそうです、、
メンテ
Re: 最新のライブラリでのリンクエラー ( No.5 )
名前:kaiser 日時:2017/09/04 07:28

再度別機種にて検証を行った際機種によって動くものと動かないものが出てきました。 どうやら環境依存のようです、、、 ※Galaxy Nexus系で動かないもの多数 まさかの機種依存とは思わなかったです。申し訳ありません 何度もすみませんでした
メンテ
Re: 最新のライブラリでのリンクエラー ( No.6 )
名前:kaiser 日時:2017/09/04 08:56

ちょっと、調べたところシェーダー系で動かなくなっている模様なのでこちらシェーダーを使わないソフトウェアでのスキンメッシュ系のライブラリを作成してみたいのですが.aファイルの作りかた等サンプルがありますでしょうか? ヒントだけでもよろしくお願いいたします
メンテ
Re: 最新のライブラリでのリンクエラー ( No.7 )
名前:管理人 日時:2017/09/05 00:13

> 再度別機種にて検証を行った際機種によって動くものと動かないものが出てきました。 > どうやら環境依存のようです、、、 >  > ※Galaxy Nexus系で動かないもの多数 確かに『あんまり古い機種ではそもそも pmd や pmx の描画は重すぎて使い物にならないだろうから、 ○○以下の世代では動かないシェーダーの組み方でも良いかな…』と、対応しているシェーダーの世代に よっては正常に動作しないようにした記憶が… エミュレーターでも正常に動作しなかったのでしょうか? もしそうでしたら、よろしければそのエミュレーターの作成の設定を教えていただけないでしょうか シェーダーコードを少し変更するだけで動くかどうか調べてみたいと思いますので… m(_ _)m > ちょっと、調べたところシェーダー系で動かなくなっている模様なのでこちらシェーダーを使わない > ソフトウェアでのスキンメッシュ系のライブラリを作成してみたいのですが.aファイルの作りかた等サンプルがありますでしょうか? > ヒントだけでもよろしくお願いいたします すみません、DXライブラリAndroid版はモデルをソフトウエアで描画する機能はありません ( ソフトウエアでスキンメッシュを描画する処理を組んでいるのは Direct3D 9 用のみです )
メンテ
Re: 最新のライブラリでのリンクエラー ( No.8 )
名前:kaiser 日時:2017/09/05 02:19

お世話になっております >エミュレーターでも正常に動作しなかったのでしょうか? >もしそうでしたら、よろしければそのエミュレーターの作成の設定を教えていただけないでしょうか こちらVS2007でのデフォルトのAVD_GalaxyNexus_ToolsForApacheCordova.avdを作成すればどうようの検証ができると思われます。 vs2007のandroidインストールのデフォルトのARM系のAVDManagerにて最初にインストールされるエミュレーターになります Device:GalaxyNexus(4.65”、720x1280) Taerget:Android4.4.2 API Level 19 CPU armebi-V7a USE HostGPU→ONでもOFFでも同じ現象 多分GPUスキニングにてGLSLの頂点シェーダボーン変形行列を渡したときにレジスタ上限に引っかかっているような感じかも?(すみません調べきれてないです) ※もしかしたらVTFでもそもそもVTFがエラーになっているかも? まだ全部しらべていないのでなんとも言えないのですがテクスチャのピクセルフォーマットをちゃんとした形式にすれば行けそうな感じのような気がします (ちょっとどこでエラーが帰ってきてるのかまだ追えていないので) 頂点テクスチャでスキニングをCPUでやった場合普通に表示されましたので GLSLでの処理からそもそもフェッチでエラーが帰ってきてる模様なのでそこを別にすればいけそうな感じだと思って.aファイルの作成方法を知りたかったのですが。 >すみません、DXライブラリAndroid版はモデルをソフトウエアで描画する機能はありません >( ソフトウエアでスキンメッシュを描画する処理を組んでいるのは Direct3D 9 用のみです ) 申し訳ありません。言葉が足りなかったようなので こちらで実装するので普通に.aファイルの作り方さえわかればいいので管理者様の手を煩わせないようにスキンメッシュの実装はこちらで行うためにただ単に.aファイルの作り方(シェーダーのコンパイル含め) 知りたかったためです。 >確かに『あんまり古い機種ではそもそも pmd や pmx の描画は重すぎて使い物にならないだろうから、 >○○以下の世代では動かないシェーダーの組み方でも良いかな…』と、対応しているシェーダーの世代に >よっては正常に動作しないようにした記憶が… たしかに3,4年前のスマホとかちょっと遅いかもしれませんね ただ、ターン制とかシーンだけならスキンメッシュでのPMD,PMX程度のモデルであれば30〜15FPSはでるので特に問題はなさ気な感じです(まあ、アクションだときついですが(汗))
メンテ
Re: 最新のライブラリでのリンクエラー ( No.9 )
名前:kaiser 日時:2017/09/05 02:26

すみませんもうちょっとDXlibのソース調べてみます。 ちょっと時間かかるかもしれませんがもう少し詳しくエラーの原因を調べてみます
メンテ
Re: 最新のライブラリでのリンクエラー ( No.10 )
名前:kaiser 日時:2017/09/05 02:28

すみません、vs2007ではなく2017です(汗
メンテ
Re: 最新のライブラリでのリンクエラー ( No.11 )
名前:管理人 日時:2017/09/06 00:02

> こちらVS2007でのデフォルトのAVD_GalaxyNexus_ToolsForApacheCordova.avdを作成すればどうようの検証ができると思われます。 > vs2007のandroidインストールのデフォルトのARM系のAVDManagerにて最初にインストールされるエミュレーターになります > Device:GalaxyNexus(4.65”、720x1280) > Taerget:Android4.4.2 API Level 19 >  CPU armebi-V7a > USE HostGPU→ONでもOFFでも同じ現象 私の環境では Device:GalaxyNexus(4.65”、720x1280) Taerget:Android4.4.2 API Level 19 CPU armebi-V7a USE HostGPU ON のエミュレーターで pmx ファイルの読み込み&描画を正常に行うことができました ( ARM CPU のエミュレーターは死ぬほど遅いので、読み込みに1分くらい掛かりましたが ) もしかして kaiserさんの環境でも1分くらい待っていれば正常に読み込まれるということはないでしょうか? > 申し訳ありません。言葉が足りなかったようなので > こちらで実装するので普通に.aファイルの作り方さえわかればいいので管理者様の手を煩わせないようにスキンメッシュの実装はこちらで行うためにただ単に.aファイルの作り方(シェーダーのコンパイル含め) > 知りたかったためです。 libDxLib.a を作るには Visual Studio 2017 の新規プロジェクトで『スタティックライブラリ(Android)』を作成して、 DXライブラリのダウンロードページからダウンロードできるDXライブラリのソースのトップフォルダの DxUseCLib???.??? となっているファイル以外の cpp, h ファイルと、同じく Android フォルダ内の DxUseCLib???.??? と なっているファイル以外をプロジェクトに追加します( DxUseCLib???.??? のファイルを追加してしまうとビルドに zlib や libjpeg などのファイルも必要になってしまいます ) それでビルドしていただいて作成される a ファイルは libDxLib.a となります シェーダーのコンパイルは整理されていないので現状ビルド環境をお渡しできる状態になっていません、すみません m(_ _;m あと、今更気付いたのですが PMD, PMX ファイルのトゥーンシェーディングの表現にはフラグメントシェーダー ( Direct3D で言うところのピクセルシェーダー )の機能が必須なので、シェーダーの機能を使用せずにソフトウエアで PMD, PMX の 描画を行うことは残念ながらできないと思います… ( 陰無し、ライティング無しのノッペリとしたレンダリングならできますが… )
メンテ

Page: 1 |

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

   クッキー保存