[OpenCV] C++์™€ OpenCV 4.x๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ

๋ฐ˜์‘ํ˜•

๊ฐ„๋งŒ์— OpenCV ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์š” ๋ช‡๋…„ ๋ฐฑ์—”๋“œ ์—”์ง€๋‹ˆ์–ด๋ง ๊ณต๋ถ€๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด์„œ ์žฅ๋‚œ๊ฐ์ฒ˜๋Ÿผ ์—ฌ๊ฒจ์˜ค๋˜ OpenCV ๊ธ€์„ ๋‹ค์‹œ ์“ฐ๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”. ์•ˆ ๋ณธ ์‚ฌ์ด์— ๋ฒŒ์จ OpenCV 4.6 Pre-release๋กœ OpenCV 5.x ๋ฒ„์ „๊นŒ์ง€ ์˜ฌ๋ผ์˜จ ๊ฒƒ์„ ๋ณด๊ณ  ์ •๋ง ์‹œ๊ฐ„์ด ๋นจ๋ฆฌ ํ˜๋Ÿฌ๊ฐ€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ƒˆ์‚ผ ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค.

 

 

 

๋งŒ๋“ค ํ™˜๊ฒฝ

์˜ค๋Š˜์€ ์•„๋ž˜์˜ 3๊ฐ€์ง€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ OpenCV ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

  • JetBrains CLion / CMake
  • OpenCV 4.6
  • Ubuntu Linux 20.04

 

์‚ฌ์‹ค OpenCV๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์€ C++ ์™ธ์—๋„ Python์ด ์žˆ๋Š”๋ฐ์š”. ๋”ฅ๋Ÿฌ๋‹์ด๋‚˜ ๋จธ์‹ ๋Ÿฌ๋‹์„ ์ฃผ๋กœ ํ•˜์‹œ๋Š” ๋ถ„๋“ค์€ Python์„ ์ด์šฉํ•  ๊ฒƒ์ด๊ณ , ๊ทธ ์™ธ IoT๋‚˜ ์นด๋ฉ”๋ผ ๋“ฑ ํ•˜๋“œ์›จ์–ด๋ฅผ ์ฃผ๋กœ ๋‹ค๋ฃจ์‹œ๋Š” ๋ถ„๋“ค์€ C++๋ฅผ ์“ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Python๊ณผ ๋‹ฌ๋ฆฌ ์„ค์น˜๊ฐ€ ๋น„๊ต์  ์‰ฝ์ง€ ์•Š์€ C++ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

Install build tools and libraries

์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์„œ OpenCV์˜ ์†Œ์Šค๋ฅผ ์ง์ ‘ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„ ์„ค์น˜ํ•  ๊ฒƒ์ด๋ฏ€๋กœ ์ด ์†Œ์Šค๋ฅผ ๋นŒ๋“œํ•  ๋„๊ตฌ๋“ค์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

$ sudo apt install build-essential pkg-config cmake
  • build-essential: C/C++ ์ปดํŒŒ์ผ ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(make ํฌํ•จ)
  • pkg-config: ํ”„๋กœ๊ทธ๋žจ ์ปดํŒŒ์ผ ๋ฐ ๋งํฌํ•  ๋•Œ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฉ”ํƒ€ ์ •๋ณด(.pc ํŒŒ์ผ)๋ฅผ ์ฝ๋Š” ๋ชจ๋“ˆ
  • cmake: CMakeList๋ฅผ Makefile๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๋„๊ตฌ

 

์ด 3๊ฐ€์ง€๋ฅผ ์ „๋ถ€ ๋ฐ›์•˜๋‹ค๋ฉด ๋‹ค์Œ์€ OpenCV ๋นŒ๋“œ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฏธ์ง€ ๋ฐ ๋น„๋””์˜ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

$ sudo apt install libjpeg-dev libtiff5-dev libpng-dev

JPEG, TIFF, PNG ๋“ฑ OpenCV์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ฑฐ๋‚˜ ์ฒ˜๋ฆฌํ•œ ์ด๋ฏธ์ง€๋ฅผ JPEG, TIFF, PNG ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ฑฐ๋‚˜, ๋ฐ˜๋Œ€๋กœ ์ด ํŒŒ์ผ๋“ค์„ ์ฝ์–ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ž…๋‹ˆ๋‹ค.

 

$ sudo apt install ffmpeg libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev

ffMPEG, avi Codec, XVID core, x264 mp4 ๋“ฑ ๋น„๋””์˜ค ์˜์ƒ ์ฝ”๋ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํŠน์ • ์˜์ƒ์„ ๋งŒ๋“ค๊ณ , ์ €์žฅํ•˜๊ฑฐ๋‚˜ ํ˜น์€ ํŠน์ • ์˜์ƒ ํŒŒ์ผ์„ OpenCV์—์„œ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

 

$ sudo apt install libv4l-dev v4l-utils

v4l(Video4Linux) ํŒจํ‚ค์ง€๋Š” Linux์—์„œ ์นด๋ฉ”๋ผ ์˜์ƒ์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ ๋“œ๋ผ์ด๋ฒ„ API์ž…๋‹ˆ๋‹ค.

 

$ sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

๋น„๋””์˜ค ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด OpenCV๋กœ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

 

$ sudo apt install libgtk-3-dev

OpenCV์—์„œ๋Š” ์ง์ ‘ ์ด๋ฏธ์ง€๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๊ณ  ์ด๋ฅผ Window์— ๋ถˆ๋Ÿฌ์™€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋””๋ฒ„๊น… ํ•ด์ฃผ๋„๋ก ์ œ๊ณตํ•˜๋Š”๋ฐ์š”. ์ด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” highgui ๋ชจ๋“ˆ์€ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ QT์™€ ๋ฆฌ๋ˆ…์Šค์˜ ์œˆ๋„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ GTK๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

๊ทธ ์ค‘์—์„œ GTK+๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

$ sudo apt install libatlas-base-dev gfortran libeigen3-dev
  • libatlas-base-dev: C, Fortran ๊ธฐ๋ฐ˜ ํ–‰๋ ฌ ์—ฐ์‚ฐ ์ตœ์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 
  • gfortran: ์œ„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ์„ ์œ„ํ•œ ํฌํŠธ๋ž€
  • libeigen3-dev: Mozilla๊ฐ€ ๊ฐœ๋ฐœํ•œ OpenCV์— ๋‚ด์žฅ๋œ Matrix, Vector, Scalar ์ž๋ฃŒ๊ตฌ์กฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

 

 

Clone OpenCV

ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜๊ฐ€ ๋๋‚ฌ์œผ๋ฉด ์ด์ œ OpenCV ์†Œ์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

$ git clone https://github.com/opencv/opencv.git --depth=20

์œ„ ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด opencv ์†Œ์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์Šต๋‹ˆ๋‹ค.

 

$ git clone https://github.com/opencv/opencv_contrib.git --depth=20

๋งŒ์•ฝ, OpenCV Extra ๋ชจ๋“ˆ๋„ ๊ฐ™์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์œ„ ๋ช…๋ น์–ด๋„ ๊ฐ™์ด ์‹คํ–‰ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

$ mkdir build && cd build

CMake๋ฅผ ์ด์šฉํ•ด ๋นŒ๋“œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ธฐ ์ „, build ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

 

$ cmake .. -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=OFF -D WITH_TPP=OFF -D WITH_1394=OFF -D BUILD_WITH_DEBUG_INFO=OFF -D BUILD_DOCS=OFF -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=OFF -D BUILD_PACKAGES=OFF -D BUILD_TESTS=OFF -D BUILD_PREF_TESTS=OFF -D WITH_QT=OFF -D WITH_GTK=ON -D WITH_OPENGL=ON -D BUILD_opencv_python3=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules -D WITH_V4L=ON -D WITH_FFMPEG=ON -D WITH_XINE=ON -D OPENCV_ENABLE_NONFREE=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D OPENCV_SKIP_PYTHON_LEADER=ON -D OPENCV_GENERATE_PKGCONFIG=ON

๋งŒ์•ฝ Extra ๋ชจ๋“ˆ์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๋ฉด OPENCV_EXTRA_MODULES_PATH๋Š” ์ ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. 

 

์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด Build files have been written to: ๋ผ๋Š” ๊ฒƒ์ด ๋‚˜์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

Compile and Install OpenCV

์ด์ œ ๋นŒ๋“œ ํ™˜๊ฒฝ์ด ๋งŒ๋“ค์–ด์กŒ์œผ๋‹ˆ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

$ make -j $(nproc)

์—ฌ๊ธฐ์„œ nproc๋ž€, ์—ฌ๋Ÿฌ๋ถ„๋“ค ์ปดํ“จํ„ฐ์˜ ์ฝ”์–ด ๊ฐฏ์ˆ˜์ธ๋ฐ์š”. ์ตœ๋Œ€ ์ฝ”์–ด ๊ฐฏ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผ์— ๋ชจ๋“  ์ฝ”์–ด๋ฅผ ๋‹ค ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ปดํŒŒ์ผ ์ค‘ ์ผ๋ถ€ ์ž‘์—…์„ ํ•ด์•ผํ•œ๋‹ค๋ฉด ์ž์‹ ์˜ ์ฝ”์–ด ์ค‘ ์ผ๋ถ€๋งŒ ์‚ฌ์šฉํ•˜์‹œ๊ณ , ์ปดํŒŒ์ผ ์ค‘์— ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š์œผ์‹ค ๊ฒƒ์ด๋ผ๋ฉด ์œ„ ๋ช…๋ น์–ด๋ฅผ ์ ์–ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ €๋Š” 16์ฝ”์–ด ์ค‘ 8์ฝ”์–ด๋งŒ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅธ์ชฝ ์œ„์— ํŒŒ๋ž€์ƒ‰ ๋ถ€๋ถ„์ด CPU ์‚ฌ์šฉ๋ฅ  ๋ถ€๋ถ„์ธ๋ฐ, ์ •ํ™•ํžˆ ๋ฐ˜ ์ •๋„๋งŒ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”์–ด ์‚ฌ์šฉ๋Ÿ‰์— ๋”ฐ๋ผ ์ปดํŒŒ์ผ ์†๋„๊ฐ€ ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ๋ถ„ PC์— ๋งž์ถฐ ์ปดํŒŒ์ผ์— ์‚ฌ์šฉํ•  ์ฝ”์–ด ์ˆ˜๋ฅผ ์กฐ์ •ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

$ sudo make install

์ปดํŒŒ์ผ์ด ๋ชจ๋‘ ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด, ์ด์ œ ๋นŒ๋“œ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

Create Project

๋ชจ๋“  OpenCV ์„ค์น˜๊ฐ€ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด์   CLion์„ ์—ด์–ด์„œ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ , OpenCV ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ์ ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

opencvExample์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์›ํ•˜๋Š” ์ด๋ฆ„์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ ๋‹ค์Œ ์œ„์™€ ๊ฐ™์ด include ํ•  ๋””๋ ‰ํ„ฐ๋ฆฌ์— OpenCV๋ฅผ ๋„ฃ๊ณ , link๋„ OpenCV LIBS๋ฅผ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.

 

 

 

Example

๊ฐ„๋‹จํ•˜๊ฒŒ ๋ช…๋ น์–ด์— ๊ฒฝ๋กœ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ด๋ฏธ์ง€๊ฐ€ ๋กœ๋”ฉ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์œ„ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  Clion์—์„œ ์‹คํ–‰ํ•˜๋ฉด Usage Command๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ƒ˜ํ”Œ ์‹คํ–‰์„ ์œ„ํ•ด [Run] - [Run/Debug Configurations]๋กœ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์— Program arguments ๋ผ๋Š” ๊ณณ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ์ฝ์„ ์ด๋ฏธ์ง€์˜ ๊ฒฝ๋กœ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿผ CLion์—์„œ๋„ ํ„ฐ๋ฏธ๋„์— ๋ช…๋ น์–ด๋ฅผ ์น˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ๋ฐ”๋กœ ์ด๋ฏธ์ง€๊ฐ€ ๋ถˆ๋Ÿฌ์™€์ง€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

 

 

๋งˆ์น˜๋ฉฐ...

์•„์ฃผ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋กœ OpenCV๋ฅผ ์„ค์น˜ํ•˜๊ณ  CLion์—์„œ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด๋ดค์Šต๋‹ˆ๋‹ค. ์ด์ „์— ๋น„ํ•˜๋ฉด NVIDIA GPU ๋…์  ๋“œ๋ผ์ด๋ฒ„ ์„ค์น˜๊ฐ€ ๊ฐ„๋‹จํ•ด์ง€๋ฉด์„œ CUDA ์„ค์น˜ ๋น„์šฉ์ด ๊ฐ์†Œ๋˜๋Š” ๋“ฑ์˜ ๋ณ€ํ™”๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ์š”.

 

ํ•˜์ง€๋งŒ CMake์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅด์‹ ๋‹ค๋ฉด ์ด ๊ธ€์„ ์ฝ์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CMake์— ๋Œ€ํ•ด ์ข€ ๋” ๊ณต๋ถ€ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์˜ ๊ธ€์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

 

2017.03.04 - [Programming/C++] - CMake๋ฅผ ์ด์šฉํ•œ C/C++ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ

 

CMake๋ฅผ ์ด์šฉํ•œ C/C++ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ

Makefile์ด๋ผ๋Š” ๊ฒƒ์„ ํ•œ ๋ฒˆ ์ฏค์€ ๋‹ค๋“ค ๋“ค์–ด๋ณด์…จ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Visual Studio IDE ๋„๊ตฌ๋ฅผ ์ด์šฉํ•˜๋ฉด Makefile์„ ์˜คํžˆ๋ ค ๋ณด๊ธฐ ํž˜๋“ค ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, Unix, Linux์—์„œ C, C++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜์…จ๋‹ค๊ฑฐ๋‚˜ ํฌ๋กœ์Šค

blog.neonkid.xyz

๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ C, C++ ๊ธฐ๋ฐ˜ ๋ชจ๋“ˆ๋“ค์€ CMake๋ฅผ ํ†ตํ•ด ๋นŒ๋“œ/์ปดํŒŒ์ผ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ์ดํ•ดํ•˜๊ณ  OpenCV๋ฅผ ์„ค์น˜ํ•ด๋ณด๋ฉด์„œ ๋” ๋‚˜์•„๊ฐ€์„œ๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„์„ ๋นŒ๋“œํ•˜๋Š” ๋“ฑ์˜ ๊ณต๋ถ€๋ฅผ ํ•ด๋ณด์‹œ๋ฉด ๋”์šฑ ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 
๋ฐ˜์‘ํ˜•
TAGS.

Tistory Comments