2011-03-22 19 views
7

Cmake kullanılarak oluşturulan linux C++ projem için bazı standart mizanpajı kullanmak istiyorum ve bu çalıştırıcıların bağlayabileceği bazı yürütülebilir dosyalar ve bir kütüphane içeriyor. Şu anda sadece proje için bir klasör ve her alt proje için bir alt klasör vardı. En üst düzeyde bir CMakeLists ve opt seviyesinin eklediği her alt düzeyde bir. Linux C++ proje dizini mizanpajı - CMake

Project- 
      executable1 
      executable2 
      library 

Ancak ben üst düzeyde sadece bir CMakeLists olurdu aşağıdaki

Project - 
    lib //Library output folder 
    bin //Executable output folder 
    src //Al cpp source files 
    include //All header files 
    test //All tests 

gibi daha iyi kurulum olacağını düşünüyorum. Bunu kolayca cmake olarak ayarlayabilirim. Farklı bir düzeni seçmek için nedenleri var mı?

cevap

7

Ben proje dizininde doğrudan lib, bin ve test çıkışını koymak olmaz: Bir hata ayıklama ve sürüm derlemesi yapmak istiyorsanız sadece tek yer tutucu olduğu için, sen takılıyorum. Kaynak yapmanın dışında arkadaşın var! Unutmuşum, teşekkürler

Project_build_dbg 
    bin 
    lib 
    test 

Project_build_release 
    bin 
    lib 
    test 
+1

+1. Senin kaynak dirsek clutter, VCS 'ignore dosyaları düzenlemek için gerektirmez, nesne dosyaları, vb içerir çünkü bir xxx mb zip yielding olmadan kaynak dir zip için izin verir. – stijn

+0

Harika bir fikir, çalışmak gerekir şimdi iki farklı yapı türüne sahip olmak. – Mark

1

Kullanmayı düşündüğünüz düzen, projelerin çoğunun nasıl düzenlendiği konusunda oldukça fazla. Ve bir projeye sahip olmanın çok iyi organize edilmiş bir yolu. Genelde proje ile ilgili tüm dökümanları da içeren bir docs klasörüne sahibim. Bu yüzden benim her zamanki proje kurulumum.

Project - 
    lib //Library output folder 
    bin //Executable output folder 
    src //All cpp source files 
    include //All header files 
    test //All tests 
    docs //All project documentation ------> new addition 
+0

+1 docs:

Project src include CMakeLists.txt 

cmake kullanılırken Bunlar oluşturulur: Ben böyle bir şey kullanmak. Ayrıca benim git kurulum ile sürüm kontrolü altında oldukları anlamına gelir. Ancak yukarıdaki gibi lib/bin/testini proje kaynağının dışına taşıyacağım. Kaynak dışı dosyalar için – Mark