這個錯誤可能是連結的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