簡體   English   中英

致命錯誤:在 Mac 上構建 OpenCV 時未找到“QTKit/QTKit.h”文件

[英]fatal error: 'QTKit/QTKit.h' file not found when I build OpenCV on mac

我已經按照這個http://www.pyimagesearch.com/2015/06/15/install-opencv-3-0-and-python-2-7-on-osx/在我的 mac 上安裝 OpenCV。 當我執行此步驟時: $ make -j4 出現問題:

fatal error: 
      'QTKit/QTKit.h' file not found
#import <QTKit/QTKit.h>
        ^ 1 error generated. make[2]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_qtkit.mm.o]
Error 1 make[1]: ***
[modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2 make: ***
[all] Error 2

嘗試像這樣構建它:

cmake -DWITH_QUICKTIME=OFF -DWITH_GSTREAMER=OFF -DWITH_FFMPEG=OFF -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_BUILD_TYPE=Release .. ; make -j4

你可以嘗試使用brew在mac上安裝opencv嗎?

brew reinstall opencv3 --HEAD --with-python3 --with-ffmpeg --with-tbb --with-contrib

在MAC OS SIERRA上為我工作。

以下是解決此問題的解決方法:

  1. 下載SDK MACOSX 這里
  2. MacOSX10.11.sdk/MacOSX10.11.sdk/System/Library/Frameworks/QTKit.framework/Headers/提取頭文件
  3. 在opencv源文件文件夾下創建一個文件夾: opencv-3.2.0/modules/highgui/src/QTKit ,並將所有頭文件復制到該文件夾​​中。
  4. 遵循常規的opencv構建步驟。 運行make -j8時,不需要設置"-DWITH_QUICKTIME=OFF -DWITH_GSTREAMER=OFF -DWITH_FFMPEG=OFF"

這適用於opencv2.x和3.x.

此錯誤是因為在OS X v10.9中不推薦使用QuickTime Kit,Apple建議使用AVFoundation框架代替Apple API Reference

OpenCV(版本3.1.0)在QuickTime Kit上進行中繼。 因此,當您嘗試在OSX Sierra上安裝OpenCV(版本3.1.0之前)時,它會在您創建時引發錯誤。

嘗試安裝opencv的主版本就行了!

OpenCV在https://github.com/opencv/opencv/pull/7159中支持AVFoundation Framework

使用--with-quicktime-DWITH_QUICKTIME=TRUE 它將使用QUITCKTIME而不是QTKit用於視頻I / O.

我有同樣的問題,我沒有找到任何解決方案。 通過反復試驗,我發現我的OpenCV版本已損壞。 結果,我刪除了它並安裝了一個新的。 您可以使用以下兩個選項之一: 1. 終端運行brew uninstall opencv3卸載opencv然后使用pip3 install opencv-python命令安裝它。

2. Anaconda其實,我用這個方法解決了我自己的問題。

  1. 打開蟒蛇
  2. 轉到環境部分並選擇您的環境,如下所示: 在此處輸入圖片說明 然后單擊已安裝並搜索opencv 在此處輸入圖片說明 選擇opencv包並卸載它。 然后嘗試重新安裝opencv選擇沒有安裝和搜索opencv 小心安裝正確的版本。 在此處輸入圖片說明

感謝@feiyun 這是解決我的問題的解決方法:

  1. 在此處下載MACOSX SDK
  2. MacOSX10.11.sdk/MacOSX10.11.sdk/System/Library/Frameworks/QTKit.framework/Headers/提取頭文件
  3. 將所有HeadersModules文件復制到相應的文件夾中。
cd /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/System/Library/Frameworks
cd QTKit.framework
cd Versions
cd Current
sudo cp -r /Users/mac/Desktop/MacOSX-SDKs-MacOSX10.11.sdk/MacOSX10.11.sdk/System/Library/Frameworks/QTKit.framework/Versions/Current/Headers .
sudo cp -r /Users/mac/Desktop/MacOSX-SDKs-MacOSX10.11.sdk/MacOSX10.11.sdk/System/Library/Frameworks/QTKit.framework/Versions/Current/Modules .
cd ..
cd ..
sudo ln -s Versions/Current/Headers Headers
sudo ln -s Versions/Current/Modules Modules

(tf20) mac@Macbook:/Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/QTKit.framework$ ls -l
total 0
lrwxr-xr-x  1 root  wheel   24 Jan  4 10:09 Headers -> Versions/Current/Headers
lrwxr-xr-x  1 root  wheel   24 Jan  4 10:10 Modules -> Versions/Current/Modules
lrwxr-xr-x  1 root  wheel   26 Dec 17 16:33 QTKit.tbd -> Versions/Current/QTKit.tbd
drwxr-xr-x  4 root  wheel  128 Dec 17 16:33 Versions
  1. 遵循常規的 opencv 構建步驟。 運行 make -j8 時,不需要設置"-DWITH_QUICKTIME=OFF -DWITH_GSTREAMER=OFF -DWITH_FFMPEG=OFF"

這適用於 opencv2.x 和 3.x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM