導航:首頁 > 源碼編譯 > qt交叉編譯opencv

qt交叉編譯opencv

發布時間:2022-10-17 04:50:58

1. cmake在Qt編譯opencv總是出錯,已經弄了一周了,求助大神

是你的編譯器版本不對, You probably need to select a different build tool.
在點擊configure時,會出來一個選擇編譯器的框,你選一個你機器里有的編譯器就可以了。

2. linux里opencv怎麼交叉編譯

一、交叉編譯opencv 構造: 下載:各個庫的下載可以直接搜名字到官網下載 幾個關鍵解釋: 「--prefix=」 後邊跟make install時的位置,本例中,libz在make install時將安裝到/usr/arm-linux-gnueabihf中 「--host=」 後邊跟arm-linux表明使用的是ARM環境 有configure的才能進行configure配置 4)所有的makefile修改類似 Libz的交叉編譯 第一步:# ./configure --prefix=/usr/arm-linux-gnueabihf --shared 第二步:修改makefile,主要有下邊幾個,修改的時候通篇參照即可 CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar rc RANLIB=arm-linux-gnueabihf-ranlib STRIP = arm-linux-gnueabihf-strip 如果有ARCH的話,ARCH=ARM 第三步:#sudo make #sudo make install Libjpeg的交叉編譯 第一步:#./configure --host=arm-linux --prefix=/usr/arm-linux-gnueabihf --enable-shared --enable-static CC=arm-linux-gnueabihf-gcc 第二步:參考1)中方法修改makefile 第三步:#sudo make #sudo make install Libpng的交叉編譯 第一步:#./configure --host=arm-linux --prefix=/usr/arm-linux-gnueabihf --enable-shared --enable-static CC=arm-linux-gnueabihf-gcc 第二步:參考1)中方法修改makefile 第三步:#sudo make #sudo make install Yasm的交叉編譯 第一步:#./configure --host=arm-linux --prefix=/usr/arm-linux-gnueabihf --enable-shared --enable-static 第二步:修改makefile 第三步:#sudo make #sudo make install Libx264的交叉編譯 第一步:#CC=arm-linux-gnueabihf-gcc ./configure --enable-shared --host=arm-linux --disable-asm --prefix=/usr/arm-linux-gnueabihf 第二步:修改config.mak里的參數,因為makefile要調用config.mak,所以修改方法同makefile 第三步:#sudo make #sudo make install Libxvid的交叉編譯 第一步:首先切換目錄 #cd build/generic 第二步:#./configure --prefix=/usr/arm-linux-gnueabihf --host=arm-linux --disable-assembly 第三步:#sudo make #sudo make install ffmpeg的交叉編譯 第一步: ./configure --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabihf-gcc --arch=arm --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-ffmpeg --disable-ffplay --enable-ffserver --enable-swscale --enable-pthreads --disable-yasm --disable-stripping --enable-libx264 --enable-libxvid --extra-cflags=-I/usr/arm-linux-gnueabihf/include --extra-ldflags=-L/usr/arm-linux-gnueabihf/lib --prefix=/usr/arm-linux-gnueabihf 第二步:修改makefile文件 第三步:#sudo make #sudo make install 第四步:將ffmpeg加入pkg-config 執行#sudo gedit /etc/bash.bashrc,在末尾加入 export LD_LIBRARY_PATH=/usr/arm-linux-gnueabihf/lib/ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/arm-linux-gnueabihf /lib/pkgconfig export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:/usr/arm-linux-gnueabihf /lib/ 完畢後使用命令:#source /etc/bash.bashrc 或者單獨使用三個export,不過壽命只在一個終端中,終端關閉時就失效。 幾個關鍵解釋:--extra-flags指向xvid的安裝路徑,--extra-ldflags指向x264的路徑 安裝cmake-gui 執行:#sudo apt-get install cmake-qt-gui Opencv的交叉編譯 第一步:修改opencv/platflrms/linux/目錄下的arm-gnueabi.toolchain.cmake,將其所有刪掉,寫入: set( CMAKE_SYSTEM_NAME Linux ) set( CMAKE_SYSTEM_PROCESSOR arm ) set( CMAKE_C_COMPILER arm-linux-gnueabihf-gcc ) set( CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++ ) 第二步:在opencv目錄下新建build目錄,進入build目錄,執行命令: #cmake -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.toolchain.cmake ../ 這時,要保證出現: 第三步:使用cmake-gui打開CMakeCache.txt,去掉所有的無關項,修改CMAKE_INSTALL_PREFIX,來確定make install的目錄 第四步:#sudo make #sudo make install 可能出現的錯誤: opencv編譯不通過,出現skip之類的,說明ffmpeg沒編譯好,或者其編譯好了,但是pkg-config沒有設置好,一定要設置好其環境 前邊幾步不通過的話,看看命令有沒有少,或者有沒有修改好makefile 在arm上使用時,一種方法時直接將編譯好的opencv目錄下的lib文件拷貝到開發板對應的/lib目錄下,其他或者拷貝到自己指定的目錄,並設置好環境變數即可使用

3. 如何在Qt中使用OpenCV

用Qt可以方便地創造好看的GUI,要是能和OpenCV結合起來我們就能寫出蠻好的一個處理或者管理圖片的軟體。怎麼在Qt中使用OpenCV呢?請看下文:
註:我的Qt版本4.7.4(C:\QtSDK\Desktop\Qt\4.7.4),OpenCV版本2.3.1(E:\opencv),Qt下有MinGW編譯器(C:\QtSDK\mingw)
具體步驟:
Step1>
CMake OpenCV,使用CMake)生成OpenCV庫的makefile文件,需要注意的是解壓出來的OpenCV存儲路徑中的文件夾不要帶有空格或者中文(我的是E:\OpenCV,不要用類似於E:\工程\opencv, E:\Open CV這種),打開CMake,指定源碼位置(就是OpenCV解壓出來的地方)和存放生成文件的地方,Configure彈出如圖對話框,選擇MinGW Makefiles和Specify native compilers

跳出對話框用以指定C++和C的編譯器路徑,C用gcc.exe,在QtSDK目錄下的mingw/bin子目錄中,C++用g++.exe:

然後再次Configure,無錯誤後選中WITH_QT

再次Configure會出現下圖信息提示找不到Qt的Qmake可執行文件

手動指定Qmake.exe所在目錄(在.\QtSDK\Desktop\Qt\4.7.4\mingw\bin下面):

再次Configure,無錯誤後 Generate。
Step2>
編譯
1> Cmd命令 轉到Generate到的目錄(我的是如上圖所示的E:\opencv\MinGW)
>> cd E:\opencv\MinGW
2> Cmd命令 編譯文件
>> mingw32-make
3> Cmd命令 編譯INSTALL
>> mingw32-make install
過程如圖:

Step3>
在存放Generate生成的目錄下有一個install目錄,編譯好的所有結果都在這里啦,包括bin,lib和include,把bin目錄放到環境變數path中,其實可以把整個install目錄拷貝到某個地方使用,這樣就可以把opencv目錄裡面的內容全刪了,省的占空間。我就把install裡面的內容全都搬到了E盤下的OpenCVforQt目錄下了(0.0)。

Example:
在用QtCreator和OpenCV的時候,修改用到opencv的工程的.pro文件就可以了,添加include和lib,例如:
QT += core gui
TARGET = Win_OpenCV_Test
TEMPLATE = app

INCLUDEPATH += E:\OpenCVforQt\include
INCLUDEPATH += E:\OpenCVforQt\include\opencv
INCLUDEPATH += E:\OpenCVforQt\include\opencv2

LIBS += E:\OpenCVforQt\lib\libopencv_core231.dll.a
LIBS += E:\OpenCVforQt\lib\libopencv_highgui231.dll.a
LIBS += E:\OpenCVforQt\lib\libopencv_imgproc231.dll.a

SOURCES += main.cpp

4. 如何在qt中使用opencv,還請過來人指教

Step1>

CMake OpenCV,使用CMake生成OpenCV庫的makefile文件,需要注意的是解壓出來的OpenCV存儲路徑中的文件夾不要帶有空格或者中文(我的是E:\OpenCV,不
要用類似於E:\工程\opencv, E:\Open
CV這種),打開CMake,指定源碼位置(就是OpenCV解壓出來的地方)和存放生成文件的地方,Configure彈出如圖對話框,選擇MinGW Makefiles和Specify native compilers

跳出對話框用以指定C++和C的編譯器路徑,C用gcc.exe,在QtSDK目錄下的mingw/bin子目錄中,C++用g++.exe:

然後再次Configure,無錯誤後選中WITH_QT

再次Configure會出現下圖信息提示找不到Qt的Qmake可執行文件

手動指定Qmake.exe所在目錄(在.\QtSDK\Desktop\Qt\4.7.4\mingw\bin下面):

再次Configure,無錯誤後 Generate。

Step2>

編譯

1> Cmd命令 轉到Generate到的目錄(我的是如上圖所示的E:\opencv\MinGW)

>> cd E:\opencv\MinGW

2> Cmd命令 編譯文件

>> mingw32-make

3> Cmd命令 編譯INSTALL

>> mingw32-make install

過程如圖:

Step3>

在存放Generate生成的目錄下有一個install目錄,
編譯好的所有結果都在這里啦,包括bin,lib和include,把bin目錄放到環境變數path中,其實可以把整個install目錄拷貝到某個地
方使用,這樣就可以把opencv目錄裡面的內容全刪了,省的占空間。我就把install裡面的內容全都搬到了E盤下的OpenCVforQt目錄下了
(0.0)。

Example:

在用QtCreator和OpenCV的時候,修改用到opencv的工程的.pro文件就可以了,添加include和lib,例如:

QT += core gui

TARGET = Win_OpenCV_Test
TEMPLATE = app
INCLUDEPATH += E:\OpenCVforQt\include
INCLUDEPATH += E:\OpenCVforQt\include\opencv
INCLUDEPATH += E:\OpenCVforQt\include\opencv2
LIBS += E:\OpenCVforQt\lib\libopencv_core231.dll.a
LIBS += E:\OpenCVforQt\lib\libopencv_highgui231.dll.a
LIBS += E:\OpenCVforQt\lib\libopencv_imgproc231.dll.a
SOURCES += main.cpp

一個例子:

Code Snippet

#include <QtGui/QApplication>
#include <QtGui/QMessageBox>
#include <cv.h>
#include <highgui.h>
using namespace cv;

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Mat giraffe = imread("f:/giraffe.jpg");
if(giraffe.empty())
{
QMessageBox::warning(0, "Warn", "Empty image!", QMessageBox::Ok);
}
else
{
imshow("giraffe [press any key to exit]", giraffe);
waitKey();
}
return 0;
}

5. 以下是QT中編譯opencv程序所出現的warning,LINUX下的,請問如何解決,對於動態庫的鏈接問題不是很懂。。

可以在自己的目錄下.bashrc文件里,定義1:export LD_LIBRARY_PATH= 你的opencv lib庫的路徑
或在etc/profile文件里定義export CPATH=$CPATH:opencv include的路徑。export LIBRARY_PATH = $LIBRARY_PATH:你的opencv lib 路徑。

6. linux下qt配置的opencv出現libopencv_calib3d.so: file not recognized: File format not recognized

這樣的,我也碰到了這個問題,要不你打開這個QT中的Makefile文件,看下交叉編譯器還有路徑本身就是你在 qt IDE中設置的那樣,可能交叉編譯器都是gcc。PS:我改了Makefile文件但是還是有問題,但是我相信問題就是在這

7. Qt的交叉編譯問題

修改QtCreator的配置。
tools-->Options--->Build && Run --->Qt Versions
把你的開發板的編譯工具鏈扔進去。再到你發的那個圖里設置。

8. Ubuntu + Qtcreator + Opencv

你的opencv2的庫文件是下載的源代碼交叉編譯生成的嗎?直接用apt-get install安裝的可不能用作交叉編譯哦。
可以用objmp命令確認下是不是arm架構的。如果確認是,編譯的時候-L那個目錄

9. 在ARM上運行交叉編譯後的opencv文件,沒有輸出

一、交叉編譯opencv
構造:

下載:各個庫的下載可以直接搜名字到官網下載
幾個關鍵解釋:
「--prefix=」 後邊跟make install時的位置,本例中,libz在make install時將安裝到/usr/arm-linux-gnueabihf中
「--host=」 後邊跟arm-linux表明使用的是ARM環境
有configure的才能進行configure配置
4)所有的makefile修改類似
Libz的交叉編譯
第一步:# ./configure --prefix=/usr/arm-linux-gnueabihf --shared
第二步:修改makefile,主要有下邊幾個,修改的時候通篇參照即可
CC=arm-linux-gnueabihf-gcc
AR=arm-linux-gnueabihf-ar rc
RANLIB=arm-linux-gnueabihf-ranlib
STRIP = arm-linux-gnueabihf-strip
如果有ARCH的話,ARCH=ARM
第三步:#sudo make
#sudo make install
Libjpeg的交叉編譯
第一步:#./configure --host=arm-linux --prefix=/usr/arm-linux-gnueabihf --enable-shared --enable-static CC=arm-linux-gnueabihf-gcc
第二步:參考1)中方法修改makefile
第三步:#sudo make
#sudo make install
Libpng的交叉編譯
第一步:#./configure --host=arm-linux --prefix=/usr/arm-linux-gnueabihf --enable-shared --enable-static CC=arm-linux-gnueabihf-gcc
第二步:參考1)中方法修改makefile
第三步:#sudo make
#sudo make install
Yasm的交叉編譯
第一步:#./configure --host=arm-linux --prefix=/usr/arm-linux-gnueabihf --enable-shared --enable-static
第二步:修改makefile
第三步:#sudo make
#sudo make install
Libx264的交叉編譯
第一步:#CC=arm-linux-gnueabihf-gcc ./configure --enable-shared --host=arm-linux --disable-asm --prefix=/usr/arm-linux-gnueabihf
第二步:修改config.mak里的參數,因為makefile要調用config.mak,所以修改方法同makefile
第三步:#sudo make
#sudo make install
Libxvid的交叉編譯
第一步:首先切換目錄 #cd build/generic
第二步:#./configure --prefix=/usr/arm-linux-gnueabihf --host=arm-linux --disable-assembly
第三步:#sudo make
#sudo make install
ffmpeg的交叉編譯
第一步:
./configure --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabihf-gcc --arch=arm --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-ffmpeg --disable-ffplay --enable-ffserver --enable-swscale --enable-pthreads --disable-yasm --disable-stripping --enable-libx264 --enable-libxvid --extra-cflags=-I/usr/arm-linux-gnueabihf/include --extra-ldflags=-L/usr/arm-linux-gnueabihf/lib --prefix=/usr/arm-linux-gnueabihf
第二步:修改makefile文件
第三步:#sudo make
#sudo make install
第四步:將ffmpeg加入pkg-config
執行#sudo gedit /etc/bash.bashrc,在末尾加入
export LD_LIBRARY_PATH=/usr/arm-linux-gnueabihf/lib/
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/arm-linux-gnueabihf /lib/pkgconfig
export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:/usr/arm-linux-gnueabihf /lib/
完畢後使用命令:#source /etc/bash.bashrc
或者單獨使用三個export,不過壽命只在一個終端中,終端關閉時就失效。
幾個關鍵解釋:--extra-flags指向xvid的安裝路徑,--extra-ldflags指向x264的路徑
安裝cmake-gui
執行:#sudo apt-get install cmake-qt-gui
Opencv的交叉編譯
第一步:修改opencv/platflrms/linux/目錄下的arm-gnueabi.toolchain.cmake,將其所有刪掉,寫入:
set( CMAKE_SYSTEM_NAME Linux )
set( CMAKE_SYSTEM_PROCESSOR arm )
set( CMAKE_C_COMPILER arm-linux-gnueabihf-gcc )
set( CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++ )
第二步:在opencv目錄下新建build目錄,進入build目錄,執行命令:
#cmake -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.toolchain.cmake ../
這時,要保證出現:

第三步:使用cmake-gui打開CMakeCache.txt,去掉所有的無關項,修改CMAKE_INSTALL_PREFIX,來確定make install的目錄
第四步:#sudo make
#sudo make install
可能出現的錯誤:
opencv編譯不通過,出現skip之類的,說明ffmpeg沒編譯好,或者其編譯好了,但是pkg-config沒有設置好,一定要設置好其環境
前邊幾步不通過的話,看看命令有沒有少,或者有沒有修改好makefile
在arm上使用時,一種方法時直接將編譯好的opencv目錄下的lib文件拷貝到開發板對應的/lib目錄下,其他或者拷貝到自己指定的目錄,並設置好環境變數即可使用

閱讀全文

與qt交叉編譯opencv相關的資料

熱點內容
微信文件夾為什麼會被鎖定 瀏覽:994
加密系列號 瀏覽:458
電冰箱換壓縮機要注意什麼 瀏覽:795
平板的訪客模式如何加密 瀏覽:139
釘釘加密有用嗎 瀏覽:112
加密u盤好還是不加密的 瀏覽:349
微觀經濟學平狄克第八版pdf 瀏覽:404
linux查看實時流量 瀏覽:557
如何存檔到伺服器 瀏覽:548
flash編程書籍推薦 瀏覽:835
php獲得數組鍵值 瀏覽:402
香港雲伺服器操作 瀏覽:303
wpe最新源碼 瀏覽:857
自己購買雲主伺服器推薦 瀏覽:422
個人所得稅java 瀏覽:761
多餘的伺服器滑道還有什麼用 瀏覽:192
pdf劈開合並 瀏覽:29
不能修改的pdf 瀏覽:752
同城公眾源碼 瀏覽:489
一個伺服器2個埠怎麼映射 瀏覽:298