0

Mac OS X 10.7 で OpenNI を動作させようとしていました。openni.org から OpenNI、NITE、Sensor の最新の不安定なバイナリをインストールしました。OpenNI の (コンパイル済みの) サンプル サンプルは正常に動作しますが、自分で何かを作成するとすぐに失敗し始めます。たとえば、以下を参照してください。

アーキテクチャ x86_64 の未定義シンボル: 「_xnForceShutdown」、参照元: xn::Context::SetHandle(XnContext*) in sample.o 「_xnContextUnregisterFromShutdown」、参照元: xn::Context::SetHandle(XnContext*)、sample.o 「_xnContextRelease」から参照: sample.o の xn::Context::SetHandle(XnContext*) 「_xnContextAddRef」から参照: sample.o の xn::Context::SetHandle(XnContext*) 「_xnContextRegisterForShutdown」から参照: xn::Context::SetHandle(XnContext*) in sample.o ld: アーキテクチャ x86_64 のシンボルが見つかりません collect2: ld が 1 の終了ステータスを返しました make: * [AsusCamera] エラー 1

私のコードは次のとおりです。

    #include "XnOpenNI.h" 
    #include "XnCppWrapper.h" 

    using namespace xn; 
    extern "C" int printf(const char *, ...); 

    int main() {
            Context context; 
            printf("hello world\n"); 
            context.Release(); 
            return 1; 
    };

私を助けてください。私はすでにライブラリを数回再インストールしようとしました。

4

1 に答える 1

0

Qt Creator と Xcode を使用して OSX (ただし 10.6.8) でコードをコンパイルしたところ、動作します。これundefined symbolsは通常、ヘッダー ファイルが参照するライブラリ (dylib) にリンクしていないことを意味するため、libOpenNI.dylib をプロジェクトにリンクします。

Qt Creator では、次のように設定しています。

QT       += core
QT       -= gui

TARGET = niTest
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp
INCLUDEPATH += /usr/include/ni/
LIBS += /usr/lib/libOpenNI.dylib

XCode で、libOpenNI.dylib をプロジェクトにドラッグし、[項目を指定グループのフォルダーにコピーする (必要な場合)] にチェックを入れ/usr/include/ni/、ヘッダー検索パスにパスを追加しました。OpenNI/NITE で使用することになる機能によっては、他のライブラリ (libnimCodecs、libXnCore など) にもリンクする必要があることに注意してください。

于 2012-08-17T08:40:09.357 に答える