编译成功后无法找到openni2库

时间:2014-06-18 20:52:45

标签: c++ linux opencv openni

我正在尝试使用opencv查看openni颜色和深度帧,我已经能够用以下代码编译代码:

g++ `pkg-config opencv --cflags` -I /home/myaccount/Downloads/OpenNI/Include/ testing.cpp -o newtest -L /home/myaccount/Downloads/OpenNI/Redist/ -lOpenNI2 `pkg-config opencv --libs`

但是当我运行./newtest时,我收到以下错误:

./newtest: error while loading shared libraries: libOpenNI2.so: cannot open shared object file: No such file or directory

我不知道发生了什么,我很感激任何帮助/建议。

由于

2 个答案:

答案 0 :(得分:2)

我有一个类似的问题,这解决了它,如下所述。你没有说出哪个发行版,但是如果你在Ubuntu上你需要添加你的" Redist"共享库的位置到链接器conf。所以创建一个新文件:

$ sudo gedit /etc/ld.so.conf.d/openni2.conf

/<your-custom-shared-lib-location>/Redist/

请注意,您只需在文件中添加路径并 PATH变量。然后运行

sudo ldconfig

makefile中的-L指的是在编译时链接共享库。对于运行时链接,您需要上述内容。据我所知,只有当你的lib不在默认位置/ usr / local / lib时才需要这样做。这将告诉链接器在运行时为共享库包含这些路径。

答案 1 :(得分:0)

我遇到了类似的问题,然后将此文件复制到了我之前设置的程序的链接目录中。像${PROJECT_SOURCE_DIR}/lib这样就可以了。

首先尝试找到libOpenNI2.so的位置。 locate libOpenNI2.so 然后将该文件复制到我的程序链接目录中。我认为 将此文件复制到系统的链接目录,例如usr / lib,它也可以工作。