我正在尝试使用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
我不知道发生了什么,我很感激任何帮助/建议。
由于
答案 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,它也可以工作。