构建OpenCV时出现编译错误(cap_avfoundation_mac)

时间:2019-12-27 20:46:37

标签: c++ opencv makefile cmake compiler-errors

在MacOS Mojave上编译opencv;一切进展顺利,直到在cap_avfoundation_mac处抛出一个错误为止。使抱怨error: stray '@' in program,然后继续对/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks中包含的文件引发很多错误。

错误永远永远存在;但是,它们大多数似乎是相同的。这是最常见的:

error: 'nullable' does not name a type; did you mean 'cg_nullable'?   (x1,097)

error: misplaced '@property' Objective-C++ construct   (x77)

error: expected ')' before (either a ',', '*', or '>') token   (x983)

error: cannot find protocol declaration for (some Type)   (x552)

CMake命令为

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D OPENCV_EXTRA_MODULES_PATH=~/cpp/cv/opencv_contrib/modules \
      -D PYTHON3_LIBRARY=/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin/libpython3.7.dylib \
      -D PYTHON3_INCLUDE_DIR=/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/include/python3.7m \
      -D PYTHON3_EXECUTABLE=/usr/local/bin/python3 \
      -D BUILD_opencv_python2=OFF \
      -D BUILD_opencv_python3=ON \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D INSTALL_C_EXAMPLES=OFF \
      -D OPENCV_ENABLE_NONFREE=ON \
      -D BUILD_EXAMPLES=ON \
      -D OPENCV_GENERATE_PKGCONFIG=ON \
      -D CMAKE_CXX_COMPILER=/usr/local/bin/g++-9 ..

知道这是什么意思吗?帮助将不胜感激。

编辑:这是错误消息的开始。

[ 45%] Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_avfoundation_mac.mm.o
/Users/<user>/cpp/cv/opencv/modules/videoio/src/cap_avfoundation_mac.mm:360:13: error: stray '@' in program
  360 |             @{
      |             ^
/Users/<user>/cpp/cv/opencv/modules/videoio/src/cap_avfoundation_mac.mm:361:46: error: stray '@' in program
  361 |                 (id)kCVPixelBufferWidthKey:  @(1.0*width),
      |                                              ^
/Users/<user>/cpp/cv/opencv/modules/videoio/src/cap_avfoundation_mac.mm:362:46: error: stray '@' in program
  362 |                 (id)kCVPixelBufferHeightKey: @(1.0*height),
      |                                              ^
/Users/<user>/cpp/cv/opencv/modules/videoio/src/cap_avfoundation_mac.mm:363:55: error: stray '@' in program
  363 |                 (id)kCVPixelBufferPixelFormatTypeKey: @(pixelFormat)
      |                                                       ^
/Users/<user>/cpp/cv/opencv/modules/videoio/src/cap_avfoundation_mac.mm:367:13: error: stray '@' in program
  367 |             @{
      |             ^
/Users/<user>/cpp/cv/opencv/modules/videoio/src/cap_avfoundation_mac.mm:368:55: error: stray '@' in program
  368 |                 (id)kCVPixelBufferPixelFormatTypeKey: @(pixelFormat)
      |                                                       ^
/Users/<user>/cpp/cv/opencv/modules/videoio/src/cap_avfoundation_mac.mm:394:59: error: stray '@' in program
  394 |         pixelBufferOptions[(id)kCVPixelBufferWidthKey]  = @(1.0*width);
      |                                                           ^
/Users/<user>/cpp/cv/opencv/modules/videoio/src/cap_avfoundation_mac.mm:395:59: error: stray '@' in program
  395 |         pixelBufferOptions[(id)kCVPixelBufferHeightKey] = @(1.0*height);
      |                                                           ^
/Users/<user>/cpp/cv/opencv/modules/videoio/src/cap_avfoundation_mac.mm:694:61: error: stray '@' in program
  694 |     mAsset = [[AVAsset assetWithURL:[NSURL fileURLWithPath: @(filename)]] retain];
      |                                                             ^
/Users/<user>/cpp/cv/opencv/modules/videoio/src/cap_avfoundation_mac.mm:777:9: error: stray '@' in program
  777 |         @{
      |         ^
/Users/<user>/cpp/cv/opencv/modules/videoio/src/cap_avfoundation_mac.mm:778:51: error: stray '@' in program
  778 |             (id)kCVPixelBufferPixelFormatTypeKey: @(pixelFormat

0 个答案:

没有答案