Proje Dosyası ve Makefile Oluşturma

Projenin dosya yapısı aşağıdaki gibi olacak:
  • BigInteger (dir)
    • include (dir)
      • BigInteger.h
      • LinkedList.h
    • src (dir)
      • main.cpp
      • BigInteger.cpp
      • LinkedList.cpp
    • lib (dir)
    • bin (dir)
    • makefile (file)
Yukarıdaki yapıya uygun şekilde bir dizin yapısı oluşturulur dizin için. Bu işlemleri yaptıktan sonra yapmamız gereken makefile dosyasını hazır hale getirmek. Makefile birden fazla kaynak dosya içeren projelerde derleme ve çalıştırma işlemini kolaylaştıran bir kullanım yöntemidir. Projenin çalışmasını test etmek istersek sadece make komutu ile bu işlemi gerçekleştirebiliriz. Aşağıda olduğu gibi makefile dosyası yazılır:
all: compile run

compile:
 g++ -I ./include/ -o ./lib/LinkedList.o -c ./src/LinkedList.cpp
 g++ -I ./include/ -o ./lib/BigInteger.o -c ./src/BigInteger.cpp
 g++ -I ./include/ -o ./bin/main ./lib/LinkedList.o ./lib/BigInteger.o ./src/main.cpp

run:
 ./bin/main
Ancak projeyi şu anda çalıştırmamız mümkün değil. İlk olarak başlık dosyalarını tanımlamamız gerek. Kullanılabilir hale getirmek için önişlemci komutlarını eklemeliyiz.:
#ifndef LINKEDLIST_H
#define LINKEDLIST_H

#endif
Aynı kodları BigInteger.h dosyasındada yazarız, tek fark BIGINTEGER_H olmasıdır. Sonrasında LinkedList.cpp dosyasına LinkedList.h başlık dosyası include edilir, BigInteger.h dosyası ise BigInteger.cpp dosyasına include edilir. main.cpp dosyası ise aşağıdaki gibi yazılır ve kaydedilir:
#include <iostream>
#include "BigInteger.h"

int main(){
    std::cout << "Hello, World!" << std::endl;
    return 0;
}
Buraya kadar yaptığımız tüm işlemler make kullanımını test etmek içindi. Şimdi proje dizinine girelim ve make komutunu çalıştıralım:
$> cd BigInteger
$> make
g++ -I ./include/ -o ./lib/LinkedList.o -c ./src/LinkedList.cpp
g++ -I ./include/ -o ./lib/BigInteger.o -c ./src/BigInteger.cpp
g++ -I ./include/ -o ./bin/main ./lib/LinkedList.o ./lib/BigInteger.o ./src/main.cpp
./bin/main
Hello, World!
Başarılı bir şekilde çalıştığı görülüyor. Proje klasöründeki lib klasörüne bakarsak eğer BigInteger.o ve LinkedList.o object dosyaları oluşmuş. bin klasöründe ise çalıştırılabilir main.exe dosyası oluşmuş. Buraya kadar olan kısımda projenin başlangıç durumuna getirdik. Bu yazıyı şimdilik burada sonlandıyorum. Diğer yazıda bağlı liste üzerine odaklanacağım.

Hiç yorum yok:

Yorum Gönderme