Я еду на гайках .... Я работаю над программой для считывания совместных координат от датчика 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/
в целом включает в себя и LIBS, вероятно, следует жить в отдельных каталогах (например, '/ usr/local/include' и'/usr/local/lib').Вы вызываете g ++ и передаете '-I', но вы не связываетесь с какой-либо библиотекой (' -L' flag) –
Спасибо за ваш комментарий, я понял, что после просмотра образцов и их Makefiles снова. Есть ли возможность показать все зависимости? –
не уверен, но вы можете попробовать 'g ++ -o test mainSensor.cpp sensorOpenNI.cpp \' pkg-config openni --cflags --libs \ '' –