我正在尝试使用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
我不知道发生了什么,我很感激任何帮助/建议。
谢谢
我有一个类似的问题,这解决了它如下所述。您没有说哪个发行版,但如果在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时才需要这样做。这将告诉链接器在运行时为共享库包含这些路径。
我遇到了类似的问题,我将此文件复制到我之前设置的程序的链接目录中。像${PROJECT_SOURCE_DIR}/lib
然后它的工作原理。
首先尝试找到libOpenNI2.so
的位置。 locate libOpenNI2.so
然后或将此文件复制到我的程序链接目录。我认为将此文件复制到系统的链接目录,如usr / lib,它也可以。