SORU
5 NİSAN 2009, Pazar


C için en iyi klasör yapısı çapraz platform Kütüphanesi ve bağlar

C ile yazılmış bir çapraz platform bir kütüphane üzerinde çalışmaya başlamak üzereyim . Yolda, Python, Java, vb gibi diğer diller için bağlamaları uygulamak istedim. Büyük platformlarda kullanılabilir olması için kütüphane ihtiyacı: win32, Linux ve Mac OS.

Bu uygulama gerçekten bir kütüphane olmasına rağmen, bazı temel konsol programları ile birlikte demonstrasyon ve test için birlikte olacak.

Eşyaları saklamak Tahrip başlamadan önce optimum klasör yapısı ile gelmek istiyorum.

Gibi bir şey düşünüyorum:

/project                    //Top level folder

        /bin                //Binaries ready for deployment
            /linux_amd64    //Linux AMD64 platform
                  /debug    //Debug build - duplicated in all platforms
                  /release  //Release build - duplicated in all platforms
            /linux_i386     //Linux 32-bit platform
            /macosx         //Mac OS X
            /win32          //Windows 32-bit platform
                  /cygwin   //Windows 32-bit platform compiled with Cygwin
                  /vs.net   //Windows 32-bit platform compiled with Visual Studio .NET
            /win64          //Windows 64-bit platform

        /build              //Make and build files, IDE project files
            /linux_amd64    //Linux AMD64 platform
            /linux_i386     //Linux 32-bit platform
            /macosx         //Mac OS X
            /win32          //Windows 32-bit platform
            /win64          //Windows 64-bit platform

        /config             //Configuration files that accompany the binaries

        /data               //Data files that accompany the binaries

        /doc                //Documentation

        /lib                //External or third-party libraries
            /platforms      //Platform-specific code for ...
                      /linux_amd64    //Linux AMD64 platform
                      /linux_i386     //Linux 32-bit platform
                      /macosx         //Mac OS X
                      /win32          //Windows 32-bit platform
                      /win64          //Windows 64-bit platform
            /src            //Available library source code in subfolders

        /src                //Source code tree - this will contain main.cpp
            /bindings       //Bindings to other languages such as ...
                      /python
                      /java
            /h              //Header files
            /modules        //Platform-independent modules, components or subprojects
            /platforms      //Platform-specific code for ...
                      /linux_amd64 //Linux AMD64 platform-specific code
                      /linux_i386  //Linux 32-bit platform-specific code
                      /macosx
                      /win32       //Windows 32-bit platform-specific code
                      /win64       //Windows 64-bit platform

        /test               //Automated test scripts

Eğer bir öneriniz varsa, onları duymak isterim. Eğer bu yapıyı oluşturmak yardımcı olabilecek bir araç olup olmadığını merak ediyorum.

CMake ve Subversion kullanmayı planlıyorum.

CEVAP
5 NİSAN 2009, Pazar


Yapısı bana iyi görünüyor, ama birkaç nokta var:

  • normal farklı dizinlere C başlık ve kaynak dosyaları ayırmak için, ya da belki bir gösteren değildir modülleri dizin yapısı var mı?
  • muhtemelen dizinleri *gibi ara dosyaları koymak istiyorum.içinde n
  • hata ayıklama ve sürüm çıktı dosyaları için farklı bir dizin gerekir
  • ve dosyaları yüklemek yararlı olabilir konusunda philosphical karar vermek zorunda İnnoSetup versiyonu gibi kurucular için bir dizin bu kontrol

Araçlar yapısı oluşturmak için, birkaç dakika bir bash script ihtiyaç vardır - aynı araçları (bash gibi) tüm platformlarda kullanılabilir olması buna değer yazarak geçiriyordu.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jesse Pimenta

    Jesse Piment

    5 EKİM 2011
  • MotoManTV

    MotoManTV

    10 Aralık 2009
  • VitalyzdTv

    VitalyzdTv

    7 AĞUSTOS 2011