2013-04-04 3 views
1

Я еду на гайках .... Я работаю над программой для считывания совместных координат от датчика Xtion Primesense с OpenNI и NiTE. Я получил программу splittet на 3 части. Main, sensorOpenNI.hpp и sensorOpenNI.cpp. Теперь, связывая детали вместе, я получаю много ошибок, говоря, что есть неопределенные ссылки на некоторые функции NiTE. Я работаю с Kubuntu и g ++. В Nite и OpenNI ЛИЭС находятся в каталоге под названием Включить ... Вот сообщение об ошибке:OpenNI linking erros, множество неопределенных ссылок

/tmp/ccrPQHEg.o: В функции openni::VideoFrameRef::release()': sensorOpenNI.cpp:(.text._ZN6openni13VideoFrameRef7releaseEv[openni::VideoFrameRef::release()]+0x18): undefined reference to oniFrameRelease» /tmp/ccrPQHEg.o: В функции openni::VideoFrameRef::_setFrame(OniFrame*)': sensorOpenNI.cpp:(.text._ZN6openni13VideoFrameRef9_setFrameEP8OniFrame[openni::VideoFrameRef::_setFrame(OniFrame*)]+0x25): undefined reference to oniFrameAddRef ' /tmp/ccrPQHEg.o: В функции nite::UserTrackerFrameRef::release()': sensorOpenNI.cpp:(.text._ZN4nite19UserTrackerFrameRef7releaseEv[nite::UserTrackerFrameRef::release()]+0x24): undefined reference to niteUserTrackerFrameRelease' /tmp/ccrPQHEg.o:. В функции nite::UserTracker::create(openni::Device*)': sensorOpenNI.cpp:(.text._ZN4nite11UserTracker6createEPN6openni6DeviceE[nite::UserTracker::create(openni::Device*)]+0x13): undefined reference to niteInitializeUserTracker» sensorOpenNI.cpp :(text._ZN4nite11UserTracker6createEPN6openni6DeviceE [конечны :: UserTracker :: создание (OpenNI :: устройство *)] + 0x27): неопределенная ссылка на niteInitializeUserTrackerByDevice' /tmp/ccrPQHEg.o: In function nite :: UserTracker :: destroy() ': sensorOpenNI.cpp :(.text._ZN4nite11UserTracker7destroyEv [конечна :: UserTracker :: Destroy()] + 0x1e): неопределенная ссылка на niteShutdownUserTracker' /tmp/ccrPQHEg.o: In function бесконечна :: UserTracker :: readFrame (конечно :: UserTrackerFrameRef *) ':. sensorOpenNI.cpp :(text._ZN4nite11UserTracker9readFrameEPNS_19UserTrackerFrameRefE [ конечен :: UserTracker :: readFrame (конечен :: UserTrackerFrameRef *)] + 0x1D): неопределенная ссылка на niteReadUserTrackerFrame' /tmp/ccrPQHEg.o: In function бесконечна :: UserTracker :: startSkeletonTracking (короткий) ':. sensorOpenNI.cpp :(text._ZN4nite11UserTracker21startSkeletonTrackingEs [конечен :: UserTracker :: startSkeletonTracking (short)] + 0x1e): неопределенная ссылка на niteStartSkeletonTracking' /tmp/ccrPQHEg.o: In function nite :: NiTE :: initialize() ': sensorOpenNI.cpp :(. text._ZN4nite4NiTE10initializeEv [nite :: NiTE :: initialize()] + 0x7) : undefined ссылка на niteInitialize' collect2: ld returned 1 exit status [email protected]:~/Koerpersteuerung$ g++ -c sensorOpenNI.cpp sensorOpenNI.hpp -I Include/ [email protected]:~/Koerpersteuerung$ g++ mainSensor.cpp sensorOpenNI.o -I Include/ sensorOpenNI.o: In function openni :: VideoFrameRef :: release() ': sensorOpenNI.cpp :(. text._ZN6openni13VideoFrameRef7releaseE v [openni :: VideoFrameRef :: release()] + 0x18): undefined ссылка на oniFrameRelease' sensorOpenNI.o: In function openni :: VideoFrameRef :: _ setFrame (OniFrame *) ': sensorOpenNI.cpp :(. text._ZN6openni13VideoFrameRef9_setFrameEP8OniFrame [openni :: VideoFrameRef :: _setFrame (OniFrame *)] + 0x25): undefined ссылка на oniFrameAddRef' sensorOpenNI.o: In function nite :: UserTrackerFrameRef :: release() ': sensorOpenNI.cpp :(. text._ZN4nite19UserTrackerFrameRef7releaseEv [nite :: UserTrackerFrameRef :: release()] + 0x24): undefined ссылка на niteUserTrackerFrameRelease' sensorOpenNI.o: In function nite :: UserTracker :: create (openni :: Device *) ': sensorOpenNI.cpp :(. text._ZN4nite11UserTracker6createEPN6openni6DeviceE [nite :: UserTracker :: create (openni :: Device *)] + 0x13): undefined ссылка на niteInitializeUserTracker' sensorOpenNI.cpp:(.text._ZN4nite11UserTracker6createEPN6openni6DeviceE[nite::UserTracker::create(openni::Device*)]+0x27): undefined reference to niteInitializeUserTrackerByDevice ' sensorOpenNI.o: В функции nite::UserTracker::destroy()': sensorOpenNI.cpp:(.text._ZN4nite11UserTracker7destroyEv[nite::UserTracker::destroy()]+0x1e): undefined reference to niteShutdownUserTracker' sensorOpenNI.o: В функции nite::UserTracker::readFrame(nite::UserTrackerFrameRef*)': sensorOpenNI.cpp:(.text._ZN4nite11UserTracker9readFrameEPNS_19UserTrackerFrameRefE[nite::UserTracker::readFrame(nite::UserTrackerFrameRef*)]+0x1d): undefined reference to niteReadUserTrackerFrame ' sensorOpenNI.o: В функции nite::UserTracker::startSkeletonTracking(short)': sensorOpenNI.cpp:(.text._ZN4nite11UserTracker21startSkeletonTrackingEs[nite::UserTracker::startSkeletonTracking(short)]+0x1e): undefined reference to niteStartSkeletonTracking' sensorOpenNI.o: В функции nite::NiTE::initialize()': sensorOpenNI.cpp:(.text._ZN4nite4NiTE10initializeEv[nite::NiTE::initialize()]+0x7): undefined reference to niteInitialize» collect2: л.д. возвращается 1 состояние выхода

Я звоню г ++ как это:

g++ -o test mainSensor.cpp sensorOpenNI.cpp -I Include/ 
+0

в целом включает в себя и LIBS, вероятно, следует жить в отдельных каталогах (например, '/ usr/local/include' и'/usr/local/lib').Вы вызываете g ++ и передаете '-I', но вы не связываетесь с какой-либо библиотекой (' -L' flag) –

+0

Спасибо за ваш комментарий, я понял, что после просмотра образцов и их Makefiles снова. Есть ли возможность показать все зависимости? –

+0

не уверен, но вы можете попробовать 'g ++ -o test mainSensor.cpp sensorOpenNI.cpp \' pkg-config openni --cflags --libs \ '' –

ответ

0

Попробуйте скопировать библиотеки libOpenNI2.so и libNiTE2 так:

sudo cp ./OpenNI-Linux-x86-2.2/Redist/libOpenNI2.so /usr/local/lib 
sudo cp ./NiTE-Linux-x86-2.2/Redist/libNiTE2.so /usr/local/lib 

затем сделать Sudo LDCONFIG и теперь скомпилировать программу, добавив -lOpenNI2 -lNiTE2

Смежные вопросы