2008-11-19 6 views
5

może ktoś dać plik konfiguracyjny SCons który umożliwia następującą strukturęscons: src i zawierają katalogi

toplevel/ 
     /src - .cc files 
     /include .h files 

na najwyższym poziomie chcę oi ostateczną exe.

Odpowiedz

4
env=Environment(CPPPATH='/usr/include/glib-2.0/:/usr/lib/glib-2.0/include:include', 
       CPPDEFINES=[], 
       LIBS=['glib-2.0']) 

if ARGUMENTS.get('debug', 0): 
    env.Append(CCFLAGS = ' -g') 

env.Program('template', Glob('src/*.cc')) 

Pracował uczta. Dzięki.

+0

Jak zrobić pliki obiektów (*. O) przejdź do nowo utworzonego folderu o nazwie obj –

4

To pytanie: https://stackoverflow.com/questions/279860/... daje całkiem elastyczny szkielet scons, który powinien służyć twoim potrzebom za pomocą kilku poprawek do zmiennych ścieżki.

+1

Myślę, że ta odpowiedź jest zbyt trudna dla większości osób, które są nowicjuszami. VariantDir? (na przykład) i zakłada znajomość Pythona. – RichieHH

+0

Twoje założenie jest poprawne Richard. Nie mam pojęcia, co ten plik konfiguracyjny robi, ale myślę, że udało mi się wyciągnąć z niego coś pożytecznego. – anon58192932

8

Oto jeden z przykładów Sconscript złożyć

env=Environment(CPPPATH='/usr/include/glib-2.0/:/usr/lib/glib-2.0/include:inc', 
       CPPDEFINES=[], 
       LIBS=['glib-2.0']) 
env.Program('runme', Glob('src/*.c')) 

(Linia środowisko nie jest to naprawdę konieczne dla przykładu, ale muszę go zawierać ścieżkę niestandardowe wygadany nagłówka i zostawił go tam, więc można dostać pomysł dodawania dodatkowych elementów i definiowania)

Pliki źródłowe znajdują się w katalogu src i pliki nagłówkowe w katalogu inc. Uruchamiasz scons z katalogu podstawowego, a plik wyjściowy jest również generowany w tym samym katalogu.