编译成功后找不到 openni2 库
Can't find openni2 library after successful compilation
我正在尝试使用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一样,它也可以工作。
相关文章:
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 找不到QtResource文件中的文件
- VC++本机单元测试,找不到调试符号
- RegGetValue在当前用户下找不到名称
- 带有 -stdlib=libc++ 的 clang++ 9.0.1 找不到<optional>
- c++找不到具有相同哈希的无序集合元素
- 找不到以下加速库:boost_fiber
- 找不到 FLTK(缺少:FLTK_INCLUDE_DIR)
- 设置 Visual Studio for MPI: 找不到标识符错误
- "assimp/config.h"找不到,但它在文件夹中
- 链接器找不到在虚拟类 c++ 中访问的静态字段的符号
- C++系统找不到指定的文件错误
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- vcpkg 添加新库,但找不到
- Qt 5.11.2 (Clang 8.0 (Apple), 64 位), 找不到 QJSEngine 文件
- 编译成功后找不到 openni2 库