Çö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 851
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

discord: hasanmacit
Moderatör
Geliştirici
Yardımsever Üye
Mesaj
3.815
Çözümler
132
Beğeni
3.099
Puan
1.840
Ticaret Puanı
3
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ı.
Üst