問題タブ [vrpn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - JNI を使用して大規模な C++ ライブラリを Android NDK にコンパイルする - Makefile に関する質問
Android アプリで使用する Java ラッパーをいくつか使用して C++ ライブラリ (VRPN) をコンパイルしようとしています。ndk-build コマンドを使用すると、ライブラリ内のオブジェクトのコンストラクターを参照する C++ インターフェイス ファイルの最初の行で「未定義の参照」エラーが発生します。コードが正しいことはかなり確信しています。呼び出しはメソッド ヘッダーと一致し、実装されていることを確認するためのヘッダー ファイルとソース ファイルの両方があります。問題は、現在単一のクラスのみを参照している Android.mk ファイルにあると思います。そのため、コードはコンパイルされているように見えますが、ライブラリの残りのオブジェクト コードが見つからないと、リンクしません。私は C++ にかなり慣れていないので、makefile についてはよくわかりませんが、Android NDK で使用されているものと一致する「標準」makefile は見たことがありません。明らかに多くの詳細を隠しています。私が正しく理解している場合、「標準の」メイクファイルでは、出力ファイルと必要なオブジェクトファイルに名前を付け、その後にオブジェクトファイルとそのソースファイルとヘッダーファイルなどを続けます.ndk-を強制する方法がわかりませんbuild を使用してオブジェクト コードを作成し、残りのライブラリをリンクします。
ここに私の現在の Android.mk があります:
jni_vrpn_button.h:
jni_vrpn_button.cpp:
アイデア?
編集:エラーを投稿するのを忘れました:
$ $CRYSTAX/ndk-build SharedLibrary : libjni_vrpn_button.so /cygdrive/c/Development/android-ndk-r4-windows-crystax-4/android-ndk-r4-crystax/sources/string/obj/l ocal/armeabi/ objs/jni_vrpn_button/jni_vrpn_button.o: 関数
Java_jni_VrpnButton_vrpn_1Button_1 initialize': /cygdrive/c/Development/android-ndk-r4-windows-crystax-4/android-ndk-r4-crystax/sources/string/jni/j ni_vrpn_button.cpp:18: undefined reference to
内 vrpn_Button_Example_Server::vrpn_Button_Example_Server(char const*, vrpn_Connection*, int, double)' collect2: ld が 1 つの終了ステータスを返しました make: *** [/cygdrive/c/Development/android- ndk-r4-windows-crystax-4/android-ndk-r4-crystax/sources/s string/obj/local/armeabi/libjni_vrpn_button.so] エラー 1
c++ - ポインターを作成するための関数呼び出し不足の引数リスト
VRPN サーバー経由でアプリを OpenViBE に接続しようとしました。アプリを VRPN サーバーに接続するコードを追加しようとするまで、アプリは正常に動作します。
私のコードは次のようになります。
MainWindow.c
コード:
MainWindow.h
コード:
このコードを使用して、アプリを実行しようとすると、次のようになります。
エラーアドバイスに従ってコードを編集しようとしましたが、別のエラーが発生しました:
私は周りを検索しますが、使用可能な解決策が見つかりません。
メソッドcheckChannels
とhandle_analog
このコードから「コピー」すると、すべて正常に動作します。
私はどこで間違いをしていますか?すべての返信に感謝します。
c++ - Yosemite で CMAKE_OSX_DEPLOYMENT_TARGET が自動的に「10.10」に設定される
OS X 10.10.5 でVRPNライブラリをコンパイルしようとしています。
: を使用してcmake 構成をセットアップしましたccmake ../vrpn
。プロジェクトを構成しようとすると、次のエラーが発生します。
最終的な CMake エラー、cmake の TryCompile 構成が失敗しました
そして、構成に変数が表示されます:
プロジェクトを再度構成しようとすると、前のエラーと共に次のメッセージが表示されます。
明らかに問題は、デフォルトの cmake 構成が間違った SDK バージョンを設定することです。
バージョンを次のように変更し10.11
ます。
そして、必要に応じて設定しCMAKE_OSX_SYSROOT
ます:
構成は問題ありませんが、次のエラーが発生します。
私が驚いたのは、別の CMakeLists.txt で Threads ライブラリを取得しようとしたところ、cmake の実行がうまくいったことです。
問題は、カスタムCMAKE_OSX_SYSROOT
でCMAKE_OSX_DEPLOYMENT_TARGET
スレッドパッケージが見つからないことだと思いました。しかし、設定からCMAKE_OSX_DEPLOYMENT_TARGET
とを削除しようとするたびに、最初のエラー メッセージが表示され、は にリセットされます。CMAKE_OSX_SYSROOT
ccmake
CMAKE_OSX_DEPLOYMENT_TARGET
10.10
これを解決するために試すことができる情報/テストはありますか?
c++ - VRPN C++ コードは Linux ではコンパイルできますが、Windows ではコンパイルできません
Linux で VRPN クライアントを構築しました。これに基づいています: http://www.vrgeeks.org/vrpn/tutorial---use-vrpn
コードの一部を次に示します。
このコードで参照されているコールバックは次のとおりです。
VRPN へのこれらすべての参照が定義されている場所は次のとおりです。
https://github.com/vrpn/vrpn/blob/master/vrpn_Analog.h#L168 https://github.com/vrpn/vrpn/blob/master/vrpn_Button.h#L225 https://github.com/ vrpn/vrpn/blob/master/vrpn_Tracker.h#L284
これらは Linux で警告なしにコンパイルされ、実際に使用できます。すべてが期待どおりに機能しました。ここにあるすべての型は、コンパイラー g++ を満たしているようです。
しかし、Windows では、Visual Studio 2015 を使用するか MinGW の g++ を使用するかに関係なく、最初の 2 つのコールバック登録で次のようになります。
そして最後のものについては、別のエラーが発生します。
これを入力しているので、VRPN が Windows で別の方法でコンパイルされたのではないかと考えています。そのため、コンパイラでコードに問題が発生しています。しかし、私は何をすべきかについて非常に迷っています。
networking - VRPN が静止物体の可変追跡データを報告するのはなぜですか?
現在、Virtual Reality Peripheral Network (VRPN) を使用して、NDI Polaris Spectra 光学トラッキング デバイスを Vizard VR ソフトウェアに接続しようとしています。最終的な目標は、ヘッドとツールの追跡にデバイスを使用することです。
Polaris に付属のソフトウェアは正しく動作し、デバイスに同梱されている剛体をサブミリの精度で追跡します。VRPN は Polaris 追跡デバイスをサポートすると主張しており、Vizard には VRPN プラグインが含まれています。ただし、VRPN を使用して Polaris と接続すると、剛体と Polaris の両方が三脚に接続されている場合でも、VRPN によって報告される追跡データが大幅に異なるようです。
Polaris で VRPN を使用するために、vrpn.cfg ファイルを編集して、コメントを外した次の行を追加しました。
(Polaris デバイスが COM2 に接続されていることを確認しました。追跡する剛体は 1 つだけで、8700449.rom ファイルに記述されています。Polaris に付属の NDI ソフトウェアでも、これが正しいことを確認しました。追跡しようとしている剛体のファイルです。)
次に、vrpn_server.exe プログラムを実行すると、次のように報告されます。
VRPN wiki に従って、別のコマンド ウィンドウで vrpn_print_devices.exe を実行して、トラッキングが正しく機能していることをテストします。
ここでの目盛りがメートル単位であることを正しく理解していれば、これらの位置のジャンプは非常に大きいです。(vrpn_print_devices.exe によって出力されたデータが切り捨てられていることにも注意してください。)
Polaris に付属の NDI ソフトウェアは同じ剛体を非常に正確に追跡するため、位置のジャンプは環境要因によるものではないと想定しています (室内の赤外線光源など)。リジッド ボディは、NDI が提供するパッシブな再帰反射トラッキング ドットを使用しています。現在、Windows 7 で VRPN を実行しています。
問題は VRPN に関連していると思われますが、Vizard の VRPN プラグインが VRPN からデータを正しく読み取っていない可能性もあります。これは、追跡対象のオブジェクトをメイン ビューポイントにリンクするために使用した Vizard (python) コードです。
ただし、これは VRPN に由来する問題のようです。見逃した構成や、このような不正確な追跡の理由はありますか?
ありがとう!
編集: VRPN が間違ったリトル/ビッグ エンディアン エンコーディングを想定している可能性はありますか?