Çözüldü cmake nedir, nasıl geçilir? avantajları, dezavantajları nelerdir?

  • Konuyu açan Konuyu açan hasanmacit
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 2
  • Gösterim Gösterim 973
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

hasanmacit

Yasaklanmış Üye
Cezalı
Geliştirici
Yardımsever Üye
Editör
Mesaj
4.951
Çözümler
210
Beğeni
5.262
Puan
2.850
Ticaret Puanı
7
bilen arkadaşlar yorumlarda cmake ile olan tecrübelerini anlatabilirler mi ? gcc ye karşı avantajı nedir ? dezavantajı nedir ? srcyi cmakeye nasıl uyarlarız ? ve genel olarak cmake nedir ?
 
Çözüm
Cmake ile proje oluşturmak daha kolay. Bilgileri CmakeLists.txt isminde dosyadan okur. Bu dosyanın kendine ait bir dil gibi fonksiyonlar vardır. Örneğin gcc de projeye bir klasörü include ederken komut satırına -I<dir> yazarız. Cmake de ise CmakeLists.txt dosyasında include_directories(${PROJECT_SOURCE_DIR}/include) şekilde bir ekleme yapıyoruz. Ancak cmake ile derleme yapılamıyor. Yani yine gcc ile ya da visual studio ile derleme yapılır. Sadece senin dosyalarını derlenmeye hazır hale getiriyor. Visual studio kullırsan .sln uzantılı proje olışturuyor. Ben cmake i vscode ile kullanıyorum. Vscode da cmake eklendisi var bu işleri daha kolay hale getiriyor. Benim kullarak edindiğim bilgiler bunlar eksik ya da yanlış...
Cmake ile proje oluşturmak daha kolay. Bilgileri CmakeLists.txt isminde dosyadan okur. Bu dosyanın kendine ait bir dil gibi fonksiyonlar vardır. Örneğin gcc de projeye bir klasörü include ederken komut satırına -I<dir> yazarız. Cmake de ise CmakeLists.txt dosyasında include_directories(${PROJECT_SOURCE_DIR}/include) şekilde bir ekleme yapıyoruz. Ancak cmake ile derleme yapılamıyor. Yani yine gcc ile ya da visual studio ile derleme yapılır. Sadece senin dosyalarını derlenmeye hazır hale getiriyor. Visual studio kullırsan .sln uzantılı proje olışturuyor. Ben cmake i vscode ile kullanıyorum. Vscode da cmake eklendisi var bu işleri daha kolay hale getiriyor. Benim kullarak edindiğim bilgiler bunlar eksik ya da yanlış olabilir.
Örnek CmakeLists.txt:
Genişlet Daralt Kopyala
cmake_minimum_required(VERSION 3.0.0)
project(cpp_aes VERSION 0.1.0)

include_directories(${PROJECT_SOURCE_DIR}/include)
link_directories(${PROJECT_SOURCE_DIR}/library)

include(CTest)
enable_testing()

add_executable(cpp_aes main.cpp)
add_library(cpp_aes_lib aes_lib.cpp)


target_link_libraries(cpp_aes cryptopp cpp_aes_lib)

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
 
Çözüm
Cmake ile proje oluşturmak daha kolay. Bilgileri CmakeLists.txt isminde dosyadan okur. Bu dosyanın kendine ait bir dil gibi fonksiyonlar vardır. Örneğin gcc de projeye bir klasörü include ederken komut satırına -I<dir> yazarız. Cmake de ise CmakeLists.txt dosyasında include_directories(${PROJECT_SOURCE_DIR}/include) şekilde bir ekleme yapıyoruz. Ancak cmake ile derleme yapılamıyor. Yani yine gcc ile ya da visual studio ile derleme yapılır. Sadece senin dosyalarını derlenmeye hazır hale getiriyor. Visual studio kullırsan .sln uzantılı proje olışturuyor. Ben cmake i vscode ile kullanıyorum. Vscode da cmake eklendisi var bu işleri daha kolay hale getiriyor. Benim kullarak edindiğim bilgiler bunlar eksik ya da yanlış olabilir.
Örnek CmakeLists.txt:
Genişlet Daralt Kopyala
cmake_minimum_required(VERSION 3.0.0)
project(cpp_aes VERSION 0.1.0)

include_directories(${PROJECT_SOURCE_DIR}/include)
link_directories(${PROJECT_SOURCE_DIR}/library)

include(CTest)
enable_testing()

add_executable(cpp_aes main.cpp)
add_library(cpp_aes_lib aes_lib.cpp)


target_link_libraries(cpp_aes cryptopp cpp_aes_lib)

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
peki iki sorum var bunu standart sflere nasıl uygularız ve vscode ya da visual ile normal build ettiğimiz gibi game dosyası alabilir miyiz ?
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst