【问题标题】:fatal error: 'QTKit/QTKit.h' file not found when I build OpenCV on mac致命错误:在 Mac 上构建 OpenCV 时找不到“QTKit/QTKit.h”文件
【发布时间】:2023-03-03 00:31:01
【问题描述】:

我已按照http://www.pyimagesearch.com/2015/06/15/install-opencv-3-0-and-python-2-7-on-osx/ 在我的 Mac 上安装 OpenCV。 当我执行此步骤时: $使-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

【问题讨论】:

标签: python macos opencv


【解决方案1】:

尝试像这样构建它:

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

【讨论】:

【解决方案2】:

以下是解决此问题的解决方法:

  1. 下载MACOSX SDKhere.
  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

【讨论】:

    【解决方案3】:

    你可以尝试在 mac 上使用 brew 安装 opencv 吗?

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

    在 MAC OS SIERRA 上为我工作。

    【讨论】:

      【解决方案4】:

      此错误是因为 QuickTime Kit 在 OS X v10.9 中已弃用,Apple 建议使用 AVFoundation 框架代替Apple API Reference

      OpenCV(3.1.0 版)在 QuickTime Kit 上进行中继。 因此,当您尝试在 OSX Sierra 上安装 OpenCV(版本 3.1.0 之前)时,它会在您制作时引发错误。

      试试安装opencv的master版本就OK了!

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

      【讨论】:

        【解决方案5】:

        使用--with-quicktime-DWITH_QUICKTIME=TRUE。它将使用 QUITCKTIME 而不是 QTKit 进行视频 I/O

        【讨论】:

        • QuickTime 在 Sierra 中也被弃用了 fatal error: 'QuickTime/QuickTime.h' file not found #include &lt;QuickTime/QuickTime.h&gt;
        【解决方案6】:

        感谢@feiyun 这是解决我的问题的解决方法:

        1. 下载MACOSX SDKhere.
        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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-12-15
          • 1970-01-01
          • 2016-06-17
          • 1970-01-01
          • 1970-01-01
          • 2019-05-01
          • 1970-01-01
          • 2021-05-20
          相关资源
          最近更新 更多