编译成功后找不到openni2库

问题描述 投票:0回答:2

我正在尝试使用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

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

谢谢

c++ linux opencv openni
2个回答
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时才需要这样做。这将告诉链接器在运行时为共享库包含这些路径。


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.