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++。