Ben小盆友 发表于 2015-1-28 12:01:53

移植OpenCV动态库时的路径问题

我已经在Ubuntu上编译好amd64版本和arm版本的OpenCV2.4.10,
其中arm版本OpenCV的安装路径是:/usr/local/OpenCV2.4.10-arm
并且,已经将/usr/local/OpenCV2.4.10-arm/lib中的库全部复制到210开发板上的/lib目录中了。

我就自己参考例子中的人脸识别程序,将程序改写到QT中,交叉编译并复制到开发板上运行。
运行时出现错误:./LoadImage: error while loading shared libraries: /usr/local/OpenCV2.4.10-arm/lib/libopencv_core.so: cannot open shared object file: No such file or directory
这个程序一直都要想去/usr/local/OpenCV2.4.10-arm/lib/目录查找OpenCV的库文件,但是这个目录是在PC上的目录,板子上是没有这个目录的。
然后我就只能在板子上建立一个一样的目录,并将库文件再复制到这个目录下,程序是能够正常运行的。

现在我的问题是有什么办法可以让程序去/lib目录中查找OpenCV的库文件呢?

另外,以下是我的Qt工程的pro文件:
<p>#-------------------------------------------------
#
# Project created by QtCreator 2015-01-21T15:52:34
#
#-------------------------------------------------</p><p>QT       += core gui</p><p>greaterThan(QT_MAJOR_VERSION, 4): QT += widgets</p><p>TARGET = LoadImage
TEMPLATE = app</p><p>
SOURCES += main.cpp\
      dialog.cpp</p><p>HEADERS+= dialog.h</p><p>FORMS    += dialog.ui</p><p>#QMAKE_INCDIR += /usr/local/OpenCV-arm/include/</p><p>#QMAKE_LIBS += -lcvaux -lcv -lcxcore -lhighgui -lml</p><p>INCLUDEPATH += /usr/local/OpenCV2.4.10-arm/include/
LIBS += /usr/local/OpenCV2.4.10-arm/lib/libopencv_core.so \
      /usr/local/OpenCV2.4.10-arm/lib/libopencv_imgproc.so \
      /usr/local/OpenCV2.4.10-arm/lib/libopencv_highgui.so \
      /usr/local/OpenCV2.4.10-arm/lib/libopencv_objdetect.so \
      /usr/local/OpenCV2.4.10-arm/lib/libopencv_flann.so \
      /usr/local/OpenCV2.4.10-arm/lib/libopencv_features2d.so \
      /usr/local/OpenCV2.4.10-arm/lib/libopencv_calib3d.so
</p><p> </p>以下是用qmake生成的makefile文件:

#############################################################################
# Makefile for building: LoadImage
# Generated by qmake (2.01a) (Qt 4.5.0) on: ?? 1? 28 11:08:22 2015
# Project:LoadImage.pro
# Template: app
# Command: /opt/EmbedSky/qt-4.5/__install/arm/bin/qmake -unix -o Makefile LoadImage.pro
#############################################################################

####### Compiler, tools and options

CC            = arm-linux-gcc
CXX         = arm-linux-g++
DEFINES       = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED
CFLAGS      = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
CXXFLAGS      = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
INCPATH       = -I../../../EmbedSky/qt-4.5/__install/arm/mkspecs/default -I. -I../../../EmbedSky/qt-4.5/__install/arm/include/QtCore -I../../../EmbedSky/qt-4.5/__install/arm/include/QtNetwork -I../../../EmbedSky/qt-4.5/__install/arm/include/QtGui -I../../../EmbedSky/qt-4.5/__install/arm/include -I/usr/local/OpenCV2.4.10-arm/include -I. -I.
LINK          = arm-linux-g++
LFLAGS      = -Wl,-O1 -Wl,-rpath,/opt/EmbedSky/qt-4.5/__install/arm/lib
LIBS          = $(SUBLIBS)-L/opt/EmbedSky/qt-4.5/__install/arm//lib /usr/local/OpenCV2.4.10-arm/lib/libopencv_core.so /usr/local/OpenCV2.4.10-arm/lib/libopencv_imgproc.so /usr/local/OpenCV2.4.10-arm/lib/libopencv_highgui.so /usr/local/OpenCV2.4.10-arm/lib/libopencv_objdetect.so /usr/local/OpenCV2.4.10-arm/lib/libopencv_flann.so /usr/local/OpenCV2.4.10-arm/lib/libopencv_features2d.so /usr/local/OpenCV2.4.10-arm/lib/libopencv_calib3d.so -lQtGui -L/tslib-1.4/libc -L/opt/EmbedSky/qt-4.5/__install/arm//lib -lts -lQtNetwork -lQtCore -lm -lrt -ldl -lpthread
AR            = arm-linux-ar cqs
RANLIB      =
QMAKE         = /opt/EmbedSky/qt-4.5/__install/arm/bin/qmake
TAR         = tar -cf
COMPRESS      = gzip -9f
COPY          = cp -f
SED         = sed
COPY_FILE   = $(COPY)
COPY_DIR      = $(COPY) -r
INSTALL_FILE= install -m 644 -p
INSTALL_DIR   = $(COPY_DIR)
INSTALL_PROGRAM = install -m 755 -p
DEL_FILE      = rm -f
SYMLINK       = ln -sf
DEL_DIR       = rmdir
MOVE          = mv -f
CHK_DIR_EXISTS= test -d
MKDIR         = mkdir -p以下是程序的运行效果:

最下面是我的例子程序,顺便提供给有需要的人参考

页: [1]
查看完整版本: 移植OpenCV动态库时的路径问题