安裝 OpenCV 一直都是堪稱玄學的技術,猶記得我大四第一次入門花了兩週才安裝成功,其中一個原因是我自己對「編譯、連結、載入、執行」不熟悉,這也是我技能樹有待補強的地方。
是說,這麼多年過去了,Windows 和 Linux 上我也安裝了無數次,EmguCV 也搞得定,換到上 macOS 仍須鬼打牆一整天才找到解方。
錯誤如下:
fatal error: ‘opencv2/opencv.hpp’ file not found
檢查編譯設定
我又反覆檢查 VSCode 中 task.json 的編譯設定,確認給出的路徑裡的確有 libs
1 | { |
透過 IntelliSense 驗證 includePath 正確性
而我在 c_cpp_properties.json 中給 IntelliSense 的 includePath 是這樣,
/usr/local/Cellar/opencv/4.1.1_2/include/opencv4/**
IntelliSense 能正確識別叫出 namespace cv 底下的東西,所以也驗證了是正確的。
失敗:改 include
如果我把 include 從這樣
1 |
改成這樣
1 |
的話,「fatal error: ‘opencv2/opencv.hpp’ file not found」會消失,但是換成其他的更深層的 OpenCV hpp 找不到 include。
別忘了要改回來。
成功解決:soft link
最後發現,在 /usr/local/inlcude 建立一個 softlink 指向 opencv2,就可以成功編譯。
1 | ln -s /usr/local/include/opencv4/opencv2 opencv2 |
是解決了,但我依然說不清楚誰去參考了「/usr/local/include/opencv2」因此得到錯誤或正確的結果。
參考來源:https://blog.csdn.net/a13602955218/article/details/101625857