我想在不具有任何已安装库的计算机上运行我的程序。我使用openCV在QT中构建我的程序,并将所有需要的.so库复制到我的所有文件的文件夹中。在QT接下来我改变路径的.pro到如何在qt中正确链接共享的linux库?
INCLUDEPATH += ../
LIBS += -L../ -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_core.
我编我的电脑(Linux版)上,它的工作,但我希望它到另一台计算机上工作,而无需编译。在我朋友的电脑上,二进制文件不起作用。我得到错误:
./displayImage: error while loading shared libraries: libopencv_highgui.so.3.1: cannot open shared object file: No such file or directory
您是否确定实际运送图书馆的所有部分?显然它找不到opencv_highgui SO。也许opencv_highgui库是其他opencv库所必需的(** readelf **可能不会在您的.elf上运行时报告它),或者它正在寻找libopencv_xyz.so库,而它们的文件名中没有主要/次要版本( “长名称”通常用于/ usr/lib中的符号链接)。 输出文件上的** readelf **工具的输出是什么? –
的readelf文件全输出I添加到文件夹项目文件libopencv_highgui.so.3.1 libopencv_imgcodecs.so.3.1 [libopencv_imgcodecs.so.3.1 libopencv_core.so.3.1 ... –
如果您指定的系统可能有帮助规格和版本。 – ilke444