Manjaro'da C/C++ Programlama ve CMake Kullanımı

Geliştirme ortamının kurulumu Linux tabanlı işletim sistemi olan Manjaro'da gerçekleştirilecek. Uygulanan adımlar çoğu işletim sistemi için benzerdir.

İlk olarak gcc ve g++ derleyicileri sistemde yüklü değilse, bunları sisteme yüklemek gerekir. Bu sayede C ve C++ kodları derlenecektir.

Terminal açılır ve aşağıdaki komut satırı ile gerekli derleyiciler yüklenmesi sağlanır:
sudo pacman -S base-devel --needed
Bu işlemden sonra yüklemeyi doğrulamak için terminale kısaca gcc yazılıp enter yapılır. Yine g++ ile aynı şey yapılır. Her iki komut sonucunda aşağıdaki sonuç alınıyorsa yükleme gerçekleşmiştir.
[gurb@gurb ~]$ g++
g++: fatal error: no input files
compilation terminated.
[gurb@gurb ~]$ gcc
gcc: fatal error: no input files
compilation terminated.
 Sıra cmake kurulumuna geldi.
sudo pacman -S cmake
Yükleme kontrolü için cmake komutu yazılır.
[gurb@gurb ~]$ cmake
Usage

  cmake [options] 
  cmake [options] 
  cmake [options] -S  -B 

Specify a source directory to (re-)generate a build system for it in the
current working directory.  Specify an existing build directory to
re-generate its build system.

Run 'cmake --help' for more information.
Geliştirme ortamı için gerekli IDE olarak VS Code kullanılacaktır. VS Code uygulamasını resmi sitesinden indirip, kurulum işlemini gerçekleştirebilirsiniz. Manjaro'da aşağıdaki komutu yazarak kurulum işlemi gerçekleştirilir.
sudo pacman -S code
Kurulum yapıldıktan sonra VS Code açılır. Extensions: Marketplace (CTRL+SHIFT+X) bölümünde 'c++' araması gerçekleştirilir. Karşınıza ilk çıkan eklenti olan C/C++ eklentisi yüklenir. Eklentinin yayıncı isminin Microsoft olmasına dikkat edilmelidir. Install adında yeşil butona tıklanır ve yükleme gerçekleştirilir. Tekrar Extensions: Marketplace (CTRL+SHIFT+X) bölümünde bu kez 'cmake' araması gerçekleştirilir. Aramada çıkan ilk iki sonuç olan CMake Tools (publisher: vector-of-bool) ve CMake (publisher: twxs) eklentileri yüklenir. VS Code yeniden başlatılır.

Desktop üzerinde Programming klasörü ve onun içerisinde example adında bir klasör oluşturuldu. Bu klasör VS Code ile açılır. Örnek bir C++ uygulaması oluşturulur. Proje dizini içerisinde include ve src adlı klasörler oluşturulur. include klasöründe başlık dosyaları bulunacak, src klasöründe ise kaynak dosyaları bulunacak. include klasöründe 'header.h' dosyası oluşturuldu, src klasöründe 'header.cpp' ve 'main.cpp' oluşturuldu.
baslik.h
#ifndef BASLIK_H
#define BASLIK_H

char ekranaYaz();

#endif 
baslik.cpp
#include <iostream>
#include "baslik.h"

void ekranaYaz(){
    std::cout << "Merhaba" << std::endl;
}
main.cpp
#include <iostream>
#include "baslik.h"

int main(){
    ekranaYaz();
    return 0;
}
Bu aşamadan sonra CMake kullanılacak. Proje klasöründe CMakeLists.txt adında dosya oluşturulur. CMake kodları aşağıdaki gibi yazılır.
# gerekli minimum CMake sürümü
cmake_minimum_required(VERSION 2.8)
# paket ismi
project(exampleCMake)

# include dizini için değişken tanımlandı
set(HEADERS_DIR ${CMAKE_SOURCE_DIR}/include)

# src ve include içerisindeki dosyalar için değişken tanımlandı 
set(SOURCES ${CMAKE_SOURCE_DIR}/src/main.cpp
            ${CMAKE_SOURCE_DIR}/src/baslik.cpp)

# include dizini belirtildi
include_directories(${HEADERS_DIR})

# build gerçekleştirildi
add_executable(${PROJECT_NAME} ${SOURCES})
Sonrasında Proje dizininde terminal açılır.
[gurb@gurb example]$ mkdir build
[gurb@gurb example]$ cd build
[gurb@gurb build]$ cmake ..
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/gurb/Desktop/Programming/example/build
[gurb@gurb build]$ ls
CMakeCache.txt  CMakeFiles  cmake_install.cmake  Makefile
[gurb@gurb build]$ make
Scanning dependencies of target exampleCMake
[ 33%] Building CXX object CMakeFiles/exampleCMake.dir/src/main.cpp.o
[ 66%] Building CXX object CMakeFiles/exampleCMake.dir/src/baslik.cpp.o
[100%] Linking CXX executable exampleCMake
[100%] Built target exampleCMake
[gurb@gurb build]$ ls
CMakeCache.txt  CMakeFiles  cmake_install.cmake  exampleCMake  Makefile
[gurb@gurb build]$ ./exampleCMake
Merhaba
Projenin çalıştırılabilir olduğunu görmüş olduk.

Hiç yorum yok:

Yorum Gönderme