Eclipse’de Arm İçin Cross Compile Ayarlarının Yapılması

cross_one_cikan_gorsel

Bir cihazda çalışabilecek kodu, ya cihaz üzerinde ya da başka bir cihazda cross compile işlemi ile derleyerek çalıştırılabilir hale getirebilirsiniz. Cross compile kısaca; kendi bilgisayarınızda, başka bir cihaz için kod derleme işlemidir. 

Normal şartlarda tahmin edebileceğiniz gibi kendi bilgisayarımızda derlenip çalıştırılabilir hale (executable) getirilen bir kod, yalnızca kendi bilgisayarımızda ya da kullandığımız bilgisayar ile aynı işlemciye sahip başka bir cihazda çalışabilir.

 

Kullandığımız bilgisayarlarda genelde x86_64, i686 gibi mimarilere sahip işlemciler bulunur. Ancak gömülü sistemler işin içine girince bu tip işlemcilerin yerini daha çok arm mimarisine sahip cihazlar almaya başlar. Dolayısıyla arm mimarisine sahip cihazlar için yazılan kodlar ya o cihazın üzerinde derlenmeli ya da kendi bilgisayarımızda ilgili cihaza göre derlenip, daha sonra derlenmiş dosya cihaza gönderilmelidir. İkinci seçenek cross compile (çapraz derleme) olarak geçer.

 

Elbette büyük projelerde veya öğrenme aşamasında yazılan kodlarda, kodların kaynak dosyalarını cihaza at, orada derle işlemleri oldukça zahmetli bir süreçtir ve fazlasıyla vakit kaybına neden olur. Bundan dolayı yazılan kodlar kendi bilgisayarımızda derlenmeli ve hedef cihaza, derlenmiş hali atılmalıdır. Günümüzde uygulama geliştirmede genellikle Eclipse kullanılmaktadır. Bu yazıda Ubuntu işletim sistemine sahip bir cihazdaki Eclipse KEPLER sürümünde Cross-Compile için yapılması gereken işlemler anlatılmaktadır.

 

İşletim Sistemi:  Ubuntu 12.04 LTS
Eclipse Sürümü: Eclipse for Parallel Application Developers – KEPLER
Kaynak İşlemci: x86_64
Hedef İşlemci: armv7l

 

1. Adım: 

İstediğiniz bir Eclipse sürümünü bilgisayarınıza indirin ve kurun. Ardından Eclipse’e, kurulu değilse CDT (C/C++ Development Toolkit) eklentisini yükleyin ve kendinize bir tane boş workspace oluşturun.

 

 

2. Adım:

File > New > C++ Project menüsünden şekildeki gibi, kendinize ait bir şablon proje (template project) oluşturun.

cross_arm_adim_2

 

 

3. Adım:

Oluşturduğunuz proje sağ tıklayıp Build Configurations > Manage menüsünden New butonuna basıp istediğiniz isimde ve Existing Configuration: Debug seçili olacak şekilde yeni bir derleme konfigürasyonu oluşturun. Ardından Manage menüsünde, istediğiniz isimde oluşturulan konfigürasyon seçili haldeyken Set Active butonuna basın. Böylece şu anki derleme konfigürasyonunuz o olmuş olacak.

cross_arm_adim_3

 

 

4. Adım:

Aşağıdaki iki komuttan ilki işletim sistemindeki önemli dosyaları eksik ya da bozulmuşsa günceller ve sisteminizin daha stabil olmasını sağlar. İkinci komut ise arm işlemcili bir cihaza göre kod derleyebilmeniz için gerekli derleyiciyi bilgisayarınıza indirir ve kurar.

sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi

Yükleme işlemi tamamlandıktan sonra terminalde aşağıdaki ilk 3 komutu sorunsuz çalıştırabiliyorsanız yükleme işleminiz başarılı olmuş demektir. Yine de 4. satırdaki kod ile kütüphane dosyalarının varolduğunu da kontrol etmekte fayda var. Eğer 4. satırdaki kod boş bir ekran çıktısı üretmiyorsa her şey tamam demektir.

arm-linux-gnueabi-g++ --version
arm-linux-gnueabi-gcc --version
arm-linux-gnueabi-as --version
ls /usr/arm-linux-gnueabi/include/

cross_arm_adim_4

 

 

5. Adım: 

  • Eclipse’de oluşturduğunuz şablon proje’ye sağ tıklayarak Properties > C/C++ Build > Settings menüsüne gidin ve açılan pencerenin üstünde yer alan Configuration kısmında, sizin oluşturduğunuz derleme konfigürasyonunun seçili olduğunu kontrol edin.  Ardından GCC C++ Compiler, GCC C Compiler, GCC C++ Linker ve GCC Assembler alt menülerinde yer alan her bir Command alanında, hali hazırda yazılı olan komutların önüne yalnızca “arm-linux-gnueabi-” ekleyin.

 

  • C++11 desteği için GCC C++ Compier > Miscellaneous alt menüsünde Other Flags kısmının sonuna “-std=c++0x” ekleyin.

 

 

6. Adım:

Oluşturulan şablon proje’ye sağ tıklayarak Properties > C/C++ General > Paths And Symbols menüsüne gidin ve açılan pencerenin üstünde yer alan Configuration kısmında, sizin oluşturduğunuz derleme konfigürasyonunun seçili olduğunu kontrol edin.

  • Ardından Includes > GNU C alt menüsünde Add butonuna tıklayın. Açılan pencerede Directory kısmına “/usr/arm-linux-gnueabi/include” yazın ve Ok butonuna basın.

 

  • Includes > GNU C++ alt menüsünde Add butonuna ve ardından açılan pencerede File System butonuna basın. Yeni açılan pencerede sol taraftan Dosya Sistemi menüsüne ve oradan sırasıyla usr > arm-linux-genueabi > include > c++ dizinine gidin. Versiyon numarası yazan dizine de girin ve Tamam butonuna ardından Ok butonuna basın.

 

  • Symbols > GNU C++ alt menüsünde Add butonuna tıklayın. Açılan pencerede Name kısmına “__GXX_EXPERIMENTAL_CXX0X__” yazın ve Ok butonuna basın.

 

  • Library Paths alt menüsünde Add butonuna tıklayın. Açılan pencerede Directory kısmına “/usr/arm-linux-gnueabi/lib” yazın ve Ok butonuna basın.

 

  • Sayfanın en altındaki Apply butonuna basarak ayarları kaydedin ve Ok butonuna basarak Properties ekranından çıkın.

 

 

7.Adım:

Kodunuzu yukarıda yer alan çekiç simgeli buton ile sizin oluşturduğunuz konfigürasyon seçili iken derleyin. Proje dosyalarınızın yer aldığı bölümde oluşturduğunuz konfigürasyon ile aynı isme sahip bir dizin oluşacak ve içinde de proje ismi ile aynı bir çalıştırılabilir (executable) dosya bulunacaktır. Bu dosya yazdığınız kodun arm mimarisine sahip bir cihazda çalışacak, derlenmiş halidir. Böylece cross compile işlemi ve ayarları tamamlanmış oldu.

 

 

8. Adım: (Bu adım ile her proje için bunları yapmanıza gerek olmadığı gösterilecektir)

1. ve 2. adımdaki gibi yeni bir proje oluşturun. Oluşturduğunuz proje sağ tıklayıp Build Configurations > Manage menüsünden New butonuna basıp istediğiniz isimde ve Import From Project: “Şablon Projeniz > oluşturduğunuz konfigürasyon adı” seçili olacak şekilde yeni bir derleme konfigürasyonu oluşturun. Ardından Manage menüsünde, yeni isimde ve bir önceki projenin ayarları kullanılarak oluşturulan konfigürasyon seçili haldeyken Set Active butonuna basın. Böylece şu anki derleme konfigürasyonunuz o olmuş olacaktır. Bu şekilde, bundan sonraki projelerinizde tekrardan 5, 6 ve 7. adımları yapmanıza gerek kalmayacaktır.

cross_arm_adim_5

 

 

 

Proje ayarlarının son hallerinin ekran görüntüleri aşağıdaki gibidir. Ufak farklılıklar olabilir ancak genel yapı bu şekildedir.

 

cross_arm_c++_compiler

 

 

cross_arm_c_compiler

 

cross_arm_c++_linker

 

 

cross_arm_assembler

 

Öne çıkan görsel https://developers.google.com/playn/overview linkinden alınmıştır.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir