编译成功后找不到 openni2 库

Can't find openni2 library after successful compilation

本文关键字:openni2 找不到 成功 编译      更新时间:2023-10-16

我正在尝试使用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"位置添加到链接器配置中。所以创建一个新文件:

$ sudo gedit /etc/ld.so.conf.d/openni2.conf
/<your-custom-shared-lib-location>/Redist/

请注意,您只需要在文件中添加路径和,而不需要path变量。然后运行

sudo ldconfig

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

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

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