LİNUX'ta CMAKE İLE KÜTÜPHANE DERLEME

 Yazılarımı kendi tecrubelerimden yola çıkarak; öğrenirken en çok efor harcadığım, gereksiz yere vakit kaybettiğim aynı şeyleri tekrar tekrar yaptığım olayları bunlar yaşanmaya devam etmesin diye yazmaktayım.
 İşe başlamamla düzgün bir şekilde kütüphane derlemeyi öğrenebilmem arasında yaklaşık 3 aylık bir süre var. Üstelik birazdan göreceksiniz 10 dakika bile sürmeyecek bir konu.

 Yalnız sadece opencv kurulumundan önce kurulması gereken birkaç tane kütüphane bulunmakta. Önce onları kurun:
sudo apt-get -y remove x264 libx264-dev
 
## Install dependencies
sudo apt-get -y install build-essential checkinstall cmake pkg-config yasm
sudo apt-get -y install git gfortran
sudo apt-get -y install libjpeg8-dev libjasper-dev libpng12-dev
 
sudo apt-get -y install libtiff5-dev
 
sudo apt-get -y install libtiff-dev
 
sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
sudo apt-get -y install libxine2-dev libv4l-dev
cd /usr/include/linux
sudo ln -s -f ../libv4l1-videodev.h videodev.h
cd $cwd
 
sudo apt-get -y install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
sudo apt-get -y install libgtk2.0-dev libtbb-dev qt5-default
sudo apt-get -y install libatlas-base-dev
sudo apt-get -y install libmp3lame-dev libtheora-dev
sudo apt-get -y install libvorbis-dev libxvidcore-dev libx264-dev
sudo apt-get -y install libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt-get -y install libavresample-dev
sudo apt-get -y install x264 v4l-utils
 
# Optional dependencies
sudo apt-get -y install libprotobuf-dev protobuf-compiler
sudo apt-get -y install libgoogle-glog-dev libgflags-dev
sudo apt-get -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen
 
sudo apt-get -y install python3-dev python3-pip
sudo -H pip3 install -U pip numpy
sudo apt-get -y install python3-testresources
 

 Cmake ile derleme işi içinde CMakeLists.txt dosyasını barındıran her türlü kütüphane kaynağı için kullanılabilir. Yalnızca ben görselliği arttırabilmek adına openCV kütüphanesinin derlenmesinden yola çıkacağım. Bu kafa karışıklığına sebebiyet vermesin. Genel anlamda anlatmayı amaçladığım içinde opencv'nin herhangi bir linkini vermiyorum. Daha sonra sadece opencv ile alakalı olan yazılarımda bu linkleri paylaşacağım.


Başlangıçta indirdiğiniz kütüphane dizinin içine giriyorsunuz ve orada terminal açıyorsunuz ya da aşağıdaki kodu kullanarak kütüphane içine direk terminalden ulaşabilirsiniz.

-- $ cd kütüphane-adı/


Sonra dizinin içine; istediğiniz herhangi bir isimde, derleme işlemini gerçekleştireceğiniz bir klasör oluşturuyorsunuz. bu klasör için genellikle "build" ismi kullanılır. Ben de bu ismi tercih ediyorum. Grafik arayüzünden kolaylıkla yapabilirsiniz ancak terminal kullanarak da aşağıdaki komut iş görür.

    -- $ mkdir build



-- $ cd build
-- $ sudo apt-get install cmake-gui

 komutlarıyla önce "build" klasörüne giriyoruz ardındanda derleme işlemini yapacak olan programın grafik arayüzünü bilgisayara yüklüyoruz. Bu sıralamanın herhangi bir önemi yok. İkinci komutu terminalin neresinden verirseniz verin aynı sonuca ulaşacaktır.


 cmake-gui yüklemesinde farklı ekran çıktıları aldığınızda şaşırmayın. Bende önceden yüklü olduğu için şuan bu çıktıyı alıyorum.

--  $ cmake-gui ..

 Bunlardan sonra yukarıdaki komutu girdiğinizde karşınıza grtafik arayüzünde çalışan cmake programı çıkacaktır. Komutun sonundaki iki nokta (..) önemlidir.
 Cmake programına bir üst dizinin içindeki, benim dizinlerim için "~/opencv-3.2.0-copy", CMakeLists.txt dosyasını kullanmasını söyler. Farklı parametreleri iki noktadan önce girerek farklı konfigürasyonlar mümkün. Ancak cmake-gui genel anlamda gerekli olan her şeyi otomatik olarak gerçekleştiriyor.


 Tek yapmanız gereken sol alttaki configure tuşuna iki kere, generate tuşuna da bir kere tıklamaktır.
 Configure'e ilk tıkladığınızda CMAKESetup penceresi açılacak, herhangi bir şey yapmadan sadece finish butonuna tıklıyoruz.


 İşlemlerin hemen ardından aşağıdaki gibi bir kırmızı ekran karşınıza çıkacak;


Panik yapmaya gerek yok, ikinci configure tıkı olayı çözecek, generate tıkı ile işlem tamamlanmış olacaktır. Bunlardan sonra başka hiçbir şey yapmadan cmake'i kapatıyoruz ve terminalde kaldığımız yerden aşağıdaki komutları giriyoruz.

** Eğer söz konusu olan cuda desteği ilebirlikte kullanmak istiyorsanız WITH_CUDA parametresini işaretlemeli ve https://github.com/opencv/opencv_contrib/archive/4.X.X.zip linkindeki `X` leri sizdeki sürüm ile aynı oalcak eşkilde değiştirerek OPENCV_EXTRA_MODULES_PATH parametresini PATH_TO_FILE/opencv_contrib-4.X.X/modules/ şeklinde doldurmalısınız.

-- $ make
-- $ sudo make install
 Komutları sırayla girerseniz kafa karışıklığının önüne geçmiş olursunuz. İşlemler çoğunlukla uzun süren işlemlerdir. Süre işlemci gücünüze ve boştaki çekirdek sayınıza göre süre değişim gösterir. Özellikle eski arm mimarili işlemciler kullanıyorsanız 4-5 saate kadar çıkıyor. Ben raspberry pi 3'e kurdum. Yaklaşık 3 saat sürdü.

 Bunlarında sonunda konfigürasyonu başarıyla tamamlamış oluyoruz.

-- $ pkg-config opencv --cflags
-- $ pkg-config opencv --libs

 Komutlarıyla kütüphanenin include yolunu ve linkerlarını görebilirsiniz.


 opencv yerine kendi kütüphanenizin adını yazabilirsiniz. İsimle ilgili sorun yaşıyorsanız pkg-config ten sonra birkaç kere tab tuşuna basın. Size bilgisayarınızda bulunan kütüphanelerin listesini çıkartacaktır. Aralarından seçebilirsiniz.
 Kütüphane derlemek dediğimiz olay tamamıyla bundan ibaret. Yardımcı olabildiğimi düşünüyorum. Umarım iş görür.

                                                                    Cem Baybars GÜÇLÜ

Yorumlar

Popüler Yayınlar