Skip to content

Instantly share code, notes, and snippets.

@nucliweb
Last active March 6, 2024 10:18
Show Gist options
  • Star 19 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save nucliweb/b2a234c673221af5ec24508da7d8b854 to your computer and use it in GitHub Desktop.
Save nucliweb/b2a234c673221af5ec24508da7d8b854 to your computer and use it in GitHub Desktop.
OpenCV C++ Mac M1 Installation Steps

📺 OpenCV C++ Mac M1 Installation Tutorial Video

Commands you need

We need homebrew installed in our system

brew install cmake

mkdir Open_CV && cd Open_CV

git clone https://github.com/opencv/opencv.git

mkdir build && cd build

cmake ../opencv/ .

arch -arm64 cmake ../opencv/ -DWITH_QT=OFF -DWITH_OPENGL=OFF -DFORCE_VTK=OFF -DWITH_TBB=OFF -DWITH_GDAL=OFF -DWITH_XINE=OFF -DBUILD_EXAMPLES=OFF -DBUILD_ZLIB=OFF -DBUILD_TESTS=OFF .

arch -arm64 sudo make -j 4

arch -arm64 sudo make install
@DigitalGabriele
Copy link

I think you meant:

mkdir build && cd build

@nucliweb
Copy link
Author

I think you meant:

mkdir build && cd build

Fixed!

Thanks @DigitalGabriele 😊

@east10
Copy link

east10 commented Oct 26, 2022

When I run 'arch -arm64 cmake ....' I get the error:

arch: posix_spawnp: cmake: Bad CPU type in executable

How do I install a version of make that has the arm64 architecture?

file which cmake show:

/usr/local/bin/cmake: Mach-O 64-bit executable x86_64

Where as file which make shows:

/usr/bin/make (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/make (for architecture arm64e): Mach-O 64-bit executable arm64e

@stephenswetonic
Copy link

@east10 I'm getting the same problem. It appears to detect x86_64 in the terminal regardless..

@azhangvo
Copy link

azhangvo commented Jan 6, 2023

I was dealing with this issue last night and I found that I only had cmake installed for x86_64, though which cmake did not specify that. Instead, it was that my Homebrew version was installed on the x86_64 path rather than the arm64 path.

One of Homebrew's pages specifies that Intel files are installed under /usr/local, while Apple Silicon files are installed under /opt/homebrew, and is chosen automatically on install.

Since I had previously checked the box "Run with rosetta" in my terminal settings, I believe Homebrew installed as if it were an Intel machine rather than an Apple Silicon machine. I reran the Homebrew install with the box unchecked, added Homebrew to my path, and reinstalled cmake, which then allowed me to run the arch command without the above error.

@suryamanideep
Copy link

suryamanideep commented Feb 15, 2023

how do we include files. for xcode if this way of installation is followed?

@tahashieenavaz
Copy link

tahashieenavaz commented Mar 2, 2023

How about adding the below flag which enables you to use pkg-config .

-DOPENCV_GENERATE_PKGCONFIG=ON

pkg-config --cflags --libs opencv4

@Victor3699
Copy link

excuse me, but when I use the second line, he return me this : "zsh: command not found: pkg-config"

@tahashieenavaz
Copy link

You can simply run. brew install pkg-config

@henrydrp10
Copy link

Hello, thank you for this. I tried to run an OpenCV example code but I get this:

opencv_test.cpp:2:10: fatal error: 'opencv2/imgproc.hpp' file not found #include "opencv2/imgproc.hpp"

How can I do to include the different header files in the compilation?

Thank you.

@nucliweb
Copy link
Author

Hi @henrydrp10

Can you share the system and hardware that you are using?

@henrydrp10
Copy link

Hi @nucliweb

Sorry for bothering. I went into the video tutorial and I managed to understand how compilation is done (using CMakeLists and makefiles). I had just compiled using the g++ command and therefore the libraries had not been included properly.

Thank you.

@nucliweb
Copy link
Author

Great! 🚀

@mcserni
Copy link

mcserni commented Dec 8, 2023

Great! thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment