macOS OpenCV报错:Undefined symbols for architecture x86_64

这个错误可能是链接的OpenCV库不对,我这里的情况是我代码使用的GCC编译器,但是通过 brew install opencv 安装的OpenCV是使用clang编译的,代码也使用clang编译器 可以解决这个问题。

要查看opencv的编译信息,可以使用这个命令

opencv_version -v

我这边输出

General configuration for OpenCV 4.9.0 =====================================
  Version control:               unknown

  Extra modules:
    Location (extra):            /tmp/opencv-20240429-89341-p9dnw4/opencv-4.9.0/opencv_contrib/modules
    Version control (extra):     unknown

  Platform:
    Timestamp:                   2023-12-27T16:46:55Z
    Host:                        Darwin 21.6.0 x86_64
    CMake:                       3.29.2
    CMake generator:             Unix Makefiles
    CMake build tool:            gmake
    Configuration:               Release

  CPU/HW features:
    Baseline:                    SSE SSE2 SSE3 SSSE3 SSE4_1 POPCNT SSE4_2
      requested:                 SSE4_2
      required:                  SSE4_2
    Dispatched code generation:  FP16 AVX AVX2 AVX512_SKX
      requested:                 SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX
      FP16 (0 files):            + FP16 AVX
      AVX (8 files):             + AVX
      AVX2 (36 files):           + FP16 FMA3 AVX AVX2
      AVX512_SKX (5 files):      + FP16 FMA3 AVX AVX2 AVX_512F AVX512_COMMON AVX512_SKX

  C/C++:
    Built as dynamic libs?:      YES
    C++ standard:                17
    C++ Compiler:                clang++  (ver 14.0.0.14000029)

可以看到C++的编译器是使用的 clang++。

参考 stackoverflow

posted @ 2024-05-01 08:44  VVingerfly  阅读(42)  评论(0编辑  收藏  举报