kurulum etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
kurulum etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

1 Nisan 2020 Çarşamba

Qt Android Kurulumu

Qt Android Kurulumu


Qt, birden çok platformu destekleyen (cross-platform) masaüstü, gömülü sistem ve mobil ortamlar için grafiksel kullanıcı arayüzü geliştirmemizi sağlayan bir araçtır.
Aslında Qt'yi sadece arayüz hazırlama programı olarak nitelendirmek Qt'ye yapılmış büyük haksızlıktır. Qt içerisinde çok gelişmiş C++ modülleri, sınıfları vardır. Qt ile kullanıcı arayüzü geliştirmek için C++ programlama dili kullanılmaktadır. Qt'nin bana göre en önemli avantajı birçok işletim sisteminde (Windows, Linux, Mac) kullanılabiliyor olmasıdır (cross-platform özelliği).
Qt'nin ticari ve açık kaynak (open source) olmak üzere 2 çeşit lisansı mevcuttur. Hobi amaçlı kullanım ücretsizdir.
Algoritma geliştirirken veya test ederken bir arayüz hazırlayarak onun üzerinde çalışmanın işleri kolaylaştırdığını, zaman kazandırdığını ve sonuçları daha iyi yorumlama fırsatı sunduğunu düşünüyorum. Ben genelde bu sebeple Qt'yi kullanıyorum. Ayrıca ağ bağlantısı olan cihazların uzaktan kullanılması için Qt ile Android işletim sisteminde çalışan mobil uygulamalar geliştiriyorum.
Bu kurulum ile amacımız masaüstü için daha önceden hazırladığımız programların android işletim sistemine sahip cep telefonunda çalıştırmaktır. Tamamiyle Android uygulama geliştirmek değildir. Zaten Qt'yi biliyorsanız ve mobil uygulama geliştirme ihtiyacınız varsa sıfırdan başka bir programlama dili veya program öğrenmeden mevcut bilgimizi kullanarak geliştirdiğimiz masaüstü uygulamaları Android işletim sisteminde çalıştırılabilir hale getirmektir.
Bu yazımızda Android işletim sisteminde çalışacak mobil uygulamalar için Qt kurulumunu gerçekleştireceğiz. Kurulumu yaptıktan sonra hazırlamış olduğum Ücretsiz Qt Derslerini izleyerek Qt ile ihtiyacınız olan mobil uygulamaları geliştirebilirsiniz.


1. Qt'yi Tanıyalım

Qt ile birlikte sıklıkla kullanılan Qt Creator ve Qt Designer araçları bu bölümde kısaca tanıtılacaktır.

1.1. Qt Creator Nedir ?

Qt Creator, Qt ile daha rahat ve daha kolay arayüz geliştirmenizi sağlayan Bütünleşik Geliştirme Ortamı (Integrated Development Environment, ide) olarak adlandırılır. Qt Creator ile içerisinde barındırdığı araçlar sayesinde proje oluşturmak ve burada saymakla bitiremeyeceğim bir çok ayarı yapmanız çok kolaydır. Qt Creator, içerisinde aynı zamanda Qt Designer'ı da içermektedir. Qt Designer ise sürükle-bırak tekniği ile arayüz tasarımı yapmanızı sağlayan tasarım aracıdır. Qt'de arayüz tasarımı için 2 seçenek vardır. Qt Designer aracında sürükle-bırak kolaylığı ile tasarım yapılabildiği gibi kod yazarak da tasarım yapılabilir.


Zaman içerisinde farklı logolar kullanılsa da genelde Qt Creator için aşağıdaki logo kullanılmaktadır.


1.2. Qt Designer Nedir ?

Qt Designer, tek başına da kurulup kullanılabildiği gibi Qt Creator içerisinde de kullanılabilmektedir. Eğer Qt Creator kullanıyorsanız Qt Creator içerisindeki Qt Designer işinizi görecektir. Ayrıca Qt Designer kurmanıza gerek yok. Genel olarak aşağıdaki ikon Qt Designer ikonu olarak kullanılmaktadır.


Qt Designer'da arayüz elemanları widget box olarak adlandırılan ekranın sol bölümünde yer almaktadır. Buradan seçilen arayüz elemanı aşağıda gösterildiği gibi sürükle-bırak tekniği ile arayüz tasarımına eklenmektedir. Daha detaylı bilgilere Ücretsiz Qt Derslerini izleyerek ulaşabilirsiniz.


2. Qt Android Kurulumu

Qt Android kurulumunu aşağıdaki adımları takip ederek gerçekleştireceğiz.

2.1. Mevcut Qt Kurulumunun Kontrol Edilmesi

Bu adımda eğer daha önceden bilgisayarınıza Qt kurulumu gerçekleştirdiyseniz ( Windows için Qt Kurulumu , Ubuntu (Linux) için Qt Kurulumu ), bu kurulumun Android için mobil uygulama geliştirmeye yeterli olup olmadığı kontrol edilecektir.
Bunun için öncelikle Qt Creator açılır ve üst bölümde yer alan Tools sekmesinde Options seçeneğine tıklanır.


Açılan pencerede sol bölümde yer alan Build & Run seçilir. Bu bölümde yer alan Kits ve Qt Versions sekmelerinde aşağıdaki ekran görüntüsünde yer alan Android ile alakalı bölümler yoksa mevcut kurulumunuz ile Android işletim sistemi için mobil uygulama geliştiremezsiniz.



Android kurulumu olmayan MinGW32 kurulumu olan Qt kurulumu için Kits ve Qt Versions sekmelerinde aşağıdaki ekran görüntüsüne benzer bir sonuç elde edersiniz.



2.2. Qt Android Kurulumu

Qt Android kurulumu için elimizde aşağıdaki şemada gösterildiği gibi 2 seçenek mevcuttur. Eğer Android konfigürasyonu olmayan mevcut Qt kurulumumuz varsa bu kuruluma sonradan MaintenanceTool ile Android konfigurasyonu ekleyebiliriz. 2. seçenek ise sıfırdan içerisinde Android konfigürasyonu barındıracak şekilde Qt kurulumunu gerçekleştirmektir.


Bu 2 farklı kurulum yöntemi detaylı olarak yazının sonunda yer alan videoda açıklanmıştır ve kurulumlar adım adım gerçekleştirilmiştir. Her 2 yöntem için ortak olan Qt kurulumu sırasında yer alan Android konfigürasyon ekleme adımı aşağıdaki ekran görüntüsünde gösterilmiştir. Bu adıma ulaşmak için önceki yazılarımı inceleyebilirsiniz ( Windows için Qt Kurulumu , Ubuntu (Linux) için Qt Kurulumu ).


2.3. JDK - NDK - SDK Kurulumları

Bir önceki adımda yapmış olduğumuz işlem ile Qt'ye dedik ki "Ben Android ile mobil uygulama geliştirmek istiyorum kendini buna göre ayarla" ve Qt kendisini Android ile çalışacak şekilde ayarladı. Şimdi Qt bize diyor ki "Ben kendimi Android ile çalışacak şekilde ayarladım şimdi benim ihtiyaç duyduğum dış kaynaklı araçları kurman gerekiyor".
Biz de Qt'nin sözlerini dikkate alarak onun ihtiyaç duyduğu dış kaynaklı araçları kurma işlemine geçiyoruz. Bunun için öncelikle daha önce yaptığımız gibi Qt Creator açılır ve üst bölümde yer alan Tools sekmesinde Options seçeneğine tıklanır.


Açılan pencerede sol bölümde yer alan Devices seçilir ve bu seçimle birlikte güncellenen pencerede üst bölümde yer alan Android sekmesi seçilir. Açılan ekran hem Qt nin ihtiyaç duyduğu araçları JDK (Java Development Kit), NDK (Native Development Kit), SDK (Software Development Kit) hem de bu araçları yüklemeniz için ihtiyaç duyduğunuz kaynaklara yönlendirmeler içermektedir.


Bu araçların yüklenme işlemi detaylı olduğu ve yazı ile anlatmak zahmetli olduğu için burada anlatılmayacaktır. Yazının sonunda yer alan videoda detaylar ve kurulumlar mevcuttur.
Qt Android kurulumunda en zahmetli olan şey burada yer alan paketlerin ve Qt versiyonunun birbirleriyle uyumlu olarak çalışan versiyonlarını denk getirmektir.
Aşağıdaki tabloda birbirleriyle uyumlu çalışan paket versiyonları gösterilmektedir.

Qt Creator 4.6.2
Qt 5.11.1 veya 5.12.0
JDK (Java Development Kit) 8u241
NDK (Native Development Kit) r10e
SDK (Software Development Kit) 26.1.1


2.4. Qt ile Mobil Uygulama Geliştirme

Qt Android kurulumunu ve birbiri ile uyumlu olarak çalışan ihtiyaç duyulan paket kurulumlarını başarılı bir şekilde yaptıktan sonra Qt ile mobil uygulama geliştirme aşamasına geçebiliriz. Qt ile aşağıdaki şemadan da görüleceği gibi Qt Widgets ve Qt Quick olmak üzere 2 farklı yapıda uygulama geliştirebilmektedir.


Qt Quick yapısı, Qt içerisine sonradan dahil olan ve daha çok mobil (cep telefonu, tablet) uygulama geliştirmek için kullanılan ve içerisinde Javascript sözdizimine (syntax) benzeyen QML (Qt Modeling Language) dili kullanılan yapıdır. Qt Widgets, Qt içerisinde Qt Quick yapısından önce var olan ve daha çok Masaüstü uygulama geliştirmek için kullanılan C++ programlama dilini kullanan yapıdır. Qt Widgets daha çok masaüstü uygulamalar için kullanılsa da Qt Widgets ile geliştirmiş olduğunuz uygulamayı mobil platformlarda herhangi bir sıkıntı ile karşılaşmadan rahatça kullanabilirsiniz.


29 Eylül 2018 Cumartesi

Dlib (C++) Kütüphanesinin Windows'a Kurulumu ve Qt ile Kullanılması

Dlib (C++) Kütüphanesinin Windows'a Kurulumu ve Qt ile Kullanılması


Dlib, yapay öğrenme - makine öğrenmesi (machine learning) algoritmalarını içeren C++ kütüphanesidir ve günlük hayatımızda karşılaştığımız problemleri çözmek için kullanabileceğimiz kompleks yazılımlar geliştirebileceğimiz bir araçtır. Yüz tanıma (face recognition), yüz tespiti (face detection), yüz modelleme (facial landmarks) gibi uygulamaları Dlib kütüphanesi ile kolayca geliştirebilirsiniz. Dlib, C++ programlama dili ile kullanılan bir araç olmasının yanında Python programlama dili ile de kullanılabilmektedir. Python ile kullanmak için kurulumunuzu ona göre yapmanız gerekmektedir. Bu yazımda C++ dili için kurulum yapılacaktır ilerleyen günlerde Python dili için kurulumun nasıl yapıldığını anlatmayı planlıyorum. Aşağıdaki adımları takip ederek Windows işletim sisteminize Dlib kütüphanesinin kurulumunu yapabilir ve Qt ile uygulama geliştirebilirsiniz.


Adım 1. Dlib kütüphanesinin en son yayınlanan versiyonu sitesinden indirilir (Bu yazıda 19.16 versiyonu indirildi). Dlib, hızlı gelişim gösteren bir kütüphane olduğunda sürekli yeni versiyonları çıkmaktadır.



Adım 2. İndirilen sıkıştırılmış dosya (dlib-19.16.zip) çıkarılır.


Adım 3. dlib-19.16 klasörü içerisine "build" adında boş bir klasör oluşturulur.


Adım 4.1. Kurulum için cmake-gui'den faydalanacağız. Öncelikle sitesinden işletim sisteminizin 32 bit ya da 64 bit olmasına göre .zip uzantılı cmake dosyası indirilir.


Adım 4.2. İndirilen sıkıştırılmış dosya çıkarılır.


Adım 4.3. Çıkartılan klasör içerisinde bulunan "bin" klasörünün içerisinde yer alan "cmake-gui.exe" çift tıklanarak açılır.


Adım 5.

  • "Where is the source code:" yazan bölümde indirmiş olduğumuz dlib-19.16 klasöründe bulunan "dlib" klasörü "Browse Source ..." butonuna basılarak seçilir.
  • "Where to build the binaries:" yazan bölümde indirmiş olduğumuz dlib-19.16 klasöründe sonradan oluşturduğumuz "build" klasörü "Browse Build ..." butonuna basılarak seçilir.

ve aşağıda yer alan "Configure" butonuna basılır.


Adım 6.
(1. yol)
"Configure" butonuna bastıktan sonra yeni bir pencere açılacaktır. Bu pencerede derleme işlemi için kullanılacak derleyicinin seçilmesi istenmektedir. Ben daha önce bilgisayarıma Qt'nin MinGW derleyicisi ile kurulumunu yaptığım için burada yine tanımlı yerel (default native compiler) MinGW derleyicisini seçiyorum. Windows'a Qt Kurulumu için yazımı buradan inceleyebilirsiniz.


(2.yol) "Specify native compilers" seçeneği ile yerel derleyicilerinizi kendiniz belirleyebilirsiniz. Burada eğer Qt kurulumu yaptıysanız " Qt > Qt5.11.1 > Tools > mingw530_32 > bin " klasöründe yer alan gcc.exe C derleyicisi olarak g++.exe C++ derleyicisi olarak seçilebilir.



Adım 7. Derleyiciyi seçtikten sonra konfigürasyon işlemi başlayacaktır. "Configuration done" mesajını görene kadar bekleyiniz. Konfigurasyon işlemi sırasında Dlib kütüphanesi ile kullanılabilecek diğer araçların bilgisayarınızda kurulu olup olmadığına bakılır ve sonunda size bunlar hakkında bilgiler verir. Aşağıdaki ekran görüntüsünü inceleyecek olursak bilgisayarımda CUDA ve BLAS araçlarının kurulu olmadığını ve Dlib kütüphanesinin bu araçları kullanamayacağı belirtilmiş. Eğer CUDA kurulumunu önceden yapmış olsaydım Dlib kütüphanesini kullanarak geliştirdiğim algoritmayı GPU üzerinde çalıştırabilecektim. Buradan JPEG ve PNG formatlarındaki resimlerin Dlib ile kullanılabileceği gibi detaylı bilgilere ulaşmak mümkün. Ben sadece bir kaçından bahsettim siz detaylı inceleyebilirsiniz. Burada şimdilik bu konfigurasyonun yeterli olduğunu düşünerek "Generate" butonuna basıyoruz. "Generating done" mesajını gördüysek kuruluma başarılı bir şekilde devam ediyoruz demektir.



Adım 8. Komut satır programı (cmd, terminal) açılır ve derleme işleminin gerçekleştirildiği "build" klasörüne geçilir.


mingw32-make


komutu çalıştırılır. Bu komutu hızlı derleme için mingw32-make -j4 formatında da yazabilirsiniz. Burada "-j4" ifadesiyle derleme esnasında bilgisayarın 4 çekirdeğininde kullanılması gerektiği belirtilir. Kullanılacak çekirdek sayısını arttırıp azaltabilirsiniz. Ancak bu şekilde birden fazla çekirdek kullanılarak derleme yapıldığında hata alınabilmektedir. Benim tavsiyem tek çekirdek ile derleme işlemini yapmanız.



Adım 9. dlib-19.16 klasörü içerisinde "include" adında boş bir klasör oluşturuyoruz ve "dlib" klasörünü bu boş klasör içerisine taşıyoruz.



Adım 10. Sisteminize Qt kurulumu yaptıktan sonra Qt Creator açılır ve yeni proje oluşturulduktan sonra proje dosyasına (.pro uzantılı dosya) dlib kütüphanesinin derlendiği klasörün yolu aşağıdaki gibi tanımlanır.

Kurulum esnasında CUDA ve BLAS ile derleme yapılmadıysa sadece Dlib kütüphanesinin derlendiği klasörün yolunu tanımlamamız yeterlidir. CUDA ve BLAS ile derleme yapıldıysa Dlib kütüphanesinin derlendiği klasörün yolu ile CUDA ve BLAS kütüphanelerinin yolunu da tanımlamamız gerekmektedir.

INCLUDEPATH += C:\Users\Eyyup\Downloads\dlib-19.16\include
LIBS += -L"C:\Users\Eyyup\Downloads\dlib-19.16\build"
LIBS += -ldlib

Qt proje dosyasında (.pro) kütüphane tanımlanırken -L(kütüphane yolu), -l(kütüphane) şeklinde önekleri kullanılmaktadır.


(Kısa yol) Yukarıda anlatılan yöntemle proje dosyasına dlib kütüphanesinin derlendiği klasör yolunu tanımladığınızı ve bu şekilde onlarca proje oluşturduğunuzu düşünün. Yeni bir dlib versiyonu çıktığında ya da klasörü farklı bir yere taşıdığınızda oluşturduğunuz onlarca projeyi tek tek açarak bu tanımlamaları düzeltmeniz gerekecektir. Bu sıkıntılı durumu yaşamamak için yukarıda yapılan tanımlar bir text dosyası açılarak buraya yazılır. Daha sonra ".txt" olan dosya uzantısı ".pri" olarak değiştirilir ve bu dosya aşağıda tanımlandığı gibi Qt proje dosyasına (.pro) eklenir.

include(C:\Users\Eyyup\Downloads\dlib-19.16\dlib_library_path_19_16.pri)





27 Ağustos 2018 Pazartesi

Python Sanal Ortam (virtualenv, virtualenvwrapper) Kurulumu/ Kullanımı

Python Sanal Ortam (virtualenv, virtualenvwrapper) Kurulumu/ Kullanımı


Neden Sanal ortam kurmaya ihtiyaç duyduğumuza önceki pip/pip3 nedir ? yazısında değinmiştim. Python programlama dilinde genel olarak Python2 ve Python3 olmak üzere 2 genel versiyon vardır. Bu versiyon farklılıkları aslında gelişmekte olan tüm programlarda, kütüphanelerde mevcuttur. Örneğin bir uygulamanız bir kütüphanenin 1.0 versiyonuna ihtiyaç duyarken başka bir uygulamanız aynı kütüphanenin 2.0 versiyonuna ihtiyaç duymaktadır ve aynı anda aynı kütüphanenin 2 farklı versiyonunu çalıştırmamız mümkün olmadığından sanal ortamlara olan ihtiyaç tam bu noktada ortaya çıkmaktadır. Sanal ortamlar kurarak birbirinden bağımsız aynı kütüphanelerin farklı versiyonlarını kullanmak mümkündür. Sanal ortam kurmak için bir kaç seçenek mevcuttur. Ben burada virtualenv ve bu sanal ortamın kullanımını kolaylaştıran virtualenvwrapper'dan bahsedeceğim.

virtualenv birbirinden bağımsız (yalıtılmış,izole) Python ortamları oluşturmak için bir araçtır. virtualenv diğer sanal ortamlarla kütüphanelerini paylaşmayan kendi kurulum dizinine (klasörüne) sahip sanal ortamlar oluşturur.

virtualenvwrapper virtualenv aracını daha kolay bir şekilde sanal ortam oluşturma, silme, yönetme amacıyla kullanmamızı sağlayan başka bir araçtır.



1. Bilgisayarınıza virtualenv/virtualenvwrapper Kurulu Olup Olmadığının Kontrol Edilmesi

İşletim sisteminize virtualenv ve virtualenvwrapper araçlarının yüklü olup olmadığını aşağıdaki komutları sırasıyla çalıştırarak kontrol edebilirsiniz.

virtualenv --version

virtualenvwrapper --version



2. virtualenv/virtualenvwrapper Kurulumu

Eğer sisteminizde bu araçlar kurulu değilse aşağıdaki komutları çalıştırarak kurulumu gerçekleştirebilirsiniz.

pip install virtualenv

pip install virtualenvwrapper




pip install virtualenvwrapper-win



Sadece virtualenvwrapper kurulumu yaptığınızda virtualenv kurulumu da otomatik yapılmaktadır. Tekrar versiyon öğrenmek için kullandığımız komutu çalıştırdığımızda muhtemelen aşağıdaki ekran görüntüsüne benzer bir sonuç alacaksınız. Burada 16.0.0 versiyonu kurulmuştur.


virtualenvwrapper için versiyon kontrolü yapmadan önce yapmamız gereken birkaç işlem mevcuttur. Root klasörü (/) içerisinde virtualenvwrapper.sh shell betiğinin (script) nerede olduğuna bakıyoruz ve /usr/local/bin/ dizininde olduğunu görüyoruz.



virtualenvwrapper bir takım shell fonksiyonlarından oluşmaktadır ve bu sebeple shell başlangıç dosyasına (startup file) aşağıdaki satırları eklememiz gerekmektedir. Shell başlangıç dosyaları .bashrc veya .profile ismindeki dosyalardır. Bu dosyaların adının önünde nokta (.) bulunduğundan bu dosyalar linux işletim sisteminde gizli dosya olarak algılanmaktadır. Bu tür dosyalar genelde konfigurasyon bilgileri içerdiğinden genelde gösterilmezler. Bu dosyaları görmek için Home (~) dizininde ctrl+H kısayol tuşlarına basmanız gerekir. Bu kısayol tuşlarına bastığımızda aşağıdaki ekran görüntüsüne benzer bir sonuç elde ederiz ve aradığımız .bashrc burada yer almaktadır. .bashrc siz terminali her açtığınızda çalıştırılan shell komut dosyasıdır.



export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/my_projects
source /usr/local/bin/virtualenvwrapper.sh


1
2
3
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/my_projects
source /usr/local/bin/virtualenvwrapper.sh



export ifadesi ile WORKON_HOME ve PROJECT_HOME değişkenleri tanımlandıkları yerin dışında da kullanılabilir hale geldiler. source ifadesi ile shell fonksiyonlarının yer aldığı virtualenvwrapper.sh bir kez çalıştırılır. İsterseniz # ile bu satırların üzerine unutmamanız için yorum yazabilirsiniz. .bashrc kaydedildikten sonra başka bir değişiklik yapılmadan kapatılır ve aşağıdaki komut ile .bashrc bir kez çalıştırılır.


source ~/.bashrc


yapılan işlemlerden sonra virtualenvwrapper'ın versiyonunu öğrenmemizi sağlayan komut tekrardan çalıştırılır. Eğer virtualenvwrapper hakkında bilgilerin yer aldığı bir sonuç ekranı ile karşılaştıysanız buraya kadar yapılan işlemlerin doğru olduğunu gösterir.


3. Yeni Sanal Ortam Oluşturma : mkvirtualenv

Yeni sanal ortam oluşturmak için kullanılan mkvirtualenv komutunun kullanımı aşağıdaki gibidir:


mkvirtualenv yeni_sanal_ortam_adi


Yeni sanal ortam oluştururken python 2 ya da python 3 seçimi yapmamız mümkündür. İlgili dökümana buradan ulaşabilirsiniz ya da virtualenv --help komutunu çalıştırarak ulaşabilirsiniz.



4. Python versiyonuna Göre Yeni Sanal Ortam Oluşturma

Python2 için yeni sanal ortam oluşturma


mkvirtualenv yeni_sanal_ortam_adi -p python2


Python3 için yeni sanal ortam oluşturma


mkvirtualenv yeni_sanal_ortam_adi -p python3



5. Mevcut Sanal Ortamı Kapatma : deactivate

mevcut sanal ortam içerisindeyken aşağıdaki komut çalıştırılarak sanal ortamdan çıkış yapılır.


deactivate



6. Mevcut Sanal Ortama Geçiş Yapma : workon

daha önceden oluşturulmuş sanal ortama geçiş yapmak için aşağıdaki komut çalıştırılır.


workon sanal_ortam_adi



7. Sanal Ortama Kurulan Paketlerin Listelenmesi : lssitepackages

sanal ortama kurulan paketleri listelemek/görüntülemek için aşağıdaki komut çalıştırılır.


lssitepackages



8. Oluşturulan Sanal Ortamların Listelenmesi : lsvirtualenv

oluşturmuş olduğunuz tüm sanal ortamları listelemek için aşağıdaki komut çalıştırılır.


lsvirtualenv



9. Mevcut Sanal Ortamın Silinmesi : rmvirtualenv

oluşturmuş olduğunuz sanal ortamı silmek için aşağıdaki komut çalıştırılır.


rmvirtualenv sanal_ortam_adi