我已经在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
复制代码 以下是程序的运行效果:
最下面是我的例子程序,顺便提供给有需要的人参考
|