2011-03-20 29 views
8

Benim senaryoda CDT Eclipse'de bir C++ projem var. Ancak bu projeler, tek bir karmaşık uygulamadan ziyade bireysel (yardımcı) programların bir koleksiyonudur. Sonuç olarak, bunları bireysel olarak oluşturup çalıştırmak istiyorum.Eclipse CDT yapı bazında oluştur/çalıştır

Projem yapısı çok basittir ve benzer: Ben genel başlık dosyaları veya kütüphaneler yok

src/app1.cpp 
src/app2.cpp 
src/... 

Not. Ancak, bu projeye yalnızca ör. src/appx.cpp

İdeal

  • için kısayollar sahip olmak istiyorum üzerine

herhangi bir öneriniz

  • "şu anda açılmış .cpp çalıştır ikili" "şu anda açılmış .Cpp İnşa" Eklentiler olmadan bu davranışa nasıl ulaşılır?

  • cevap

    5

    Amacınız olanı gerçekleştirmenin kolay yolu, CDT ile bir Makefile projesi oluşturmak ve Makefile içindeki her bir uygulamanız için yeni bir hedef kural eklemektir. CDT Makefile projesi ile SCons veya diğer yapı sistemlerini bile kullanabilir ve aynı etkiyi elde edebilirsiniz.

    Ayrıca, yönetilen yapıyı nesne dosyaları yerine yürütülebilir dosyaları oluşturmak için kandırabilirsiniz. 'dan -c seçeneğini kaldır Diğer proje özellikleri içinde C++ derleyici ayarlarının işaretini kaldırın. Bu, kaynak dosyalarınızın her biri için ayrı bir uygulama dosyası oluşturur.

    Yapı dizininin içinde oluşturulan uygulama dosyaları, nesne dosya uzantısına sahip olacak ve yürütülebilir olmayacaktır. ../postbuild.sh veya ../postbuild.bat ekledikten sonra

    rename *.o *.exe 
    

    : Windows için

    chmod +x *.o 
    rename -v 's/\.o$//' *.o 
    

    veya postbuild.bat:

    Linux için postbuild.sh: Bunu çözmek için, aşağıdaki gibi proje dizininde bir post yapınızın kodlarını ekleyebilirsiniz derleme ayarlarınızda post build komutu olarak, uygulamalar çalışmaya hazır olacak. Yürütülebilir dosyalardan herhangi birine sağ tıklayın ve Debug As veya Run As'u seçin ve yeni bir Çalıştırma yapılandırması oluşturulacak.

    Ayrıca, hataları önlemek için yönetilen yapıdaki bağlayıcıyı durdurmanız gerekir. Bu, linker komutunun true (Linux) veya true.exe (Windows, msys) olarak değiştirilmesiyle sağlanabilir.

    +0

    Elbette bu, farklı uygulamaları bağımsız olarak oluşturmam/çalıştırmamı sağlıyor. Bununla birlikte, örneğin yeni uygulamalar eklemek için biraz çaba gerektirir. Ben daha uygun bir yol arıyordum, bu tek başına java sınıfları – dcn

    +0

    @ dcn için "uygulama olarak çalıştırmak" benzer yapı/çalışma için nesneler olarak kendilerini kullanır: Güncellenmiş cevabı bakın ve işe yarayıp yaramadığını görün. Windows altında test ettim ve test etmek için Ubuntu'ya geçtim. Sizin için işe yaramıyorsa, geri bildirimleriniz değerli olacaktır. –

    +0

    Bu çözüm gerçekten işe yarıyor.Açıkçası, henüz bulunmadığım bazı eclipse proje seçeneklerini kullanarak daha temiz/zor olmayan bir çözüm bekledim, ama sezgilerim sizin önerilerinizin aldığı kadar iyi olduğunu söylüyor. – dcn

    İlgili konular