SCons is een make-hulpprogramma van de volgende generatie dat veel eenvoudiger te configureren en te gebruiken is dan make. Veel ontwikkelaars vinden dat syntaxis niet alleen moeilijk is om erin te komen, maar ook behoorlijk lelijk. Als je het eenmaal hebt geleerd, is het goed, maar het heeft een beetje een steile leercurve.
Daarom is SCons bedacht; het is een beter merk en aanzienlijk gemakkelijker te gebruiken. Het probeert zelfs uit te zoeken wat compiler is nodig en levert vervolgens de juiste parameters. Als je programmeert in C of C ++ op Linux of Windows, moet je zeker SCons controleren.
Installatie
Om SCons te installeren heb je nodig Python al geïnstalleerd. Als je Linux gebruikt, heb je hoogstwaarschijnlijk al Python. Als je Windows hebt, kun je controleren of je het al hebt; sommige pakketten hebben het misschien al geïnstalleerd. Zoek eerst een opdrachtregel. Klik op de startknop (klik bij XP op Uitvoeren), typ cmd en typ python -V vanaf de opdrachtregel. Het zou iets als Python 2.7.2 moeten zeggen. Elke versie 2.4 of hoger is ok voor SCons.
Als je Python niet hebt, dan moet je dat wel doen downloaden en installeer 2.7.2. Momenteel, SCons ondersteunt Python 3 niet, dus 2.7.2 is de nieuwste (en laatste) 2-versie en de beste om te gebruiken. Dat kan in de toekomst echter veranderen, dus controleer de SCons-vereisten.
Volg de instructies voor het installeren van SCons. Het is niet ingewikkeld; Als u echter het installatieprogramma uitvoert, moet u, als het onder Vista / Windows 7 staat, scons.win32.exe als administrator uitvoeren. U doet dit door naar het bestand in Windows Verkenner te bladeren en met de rechtermuisknop te klikken en vervolgens Als administrator uitvoeren.
Als het eenmaal is geïnstalleerd, ervan uitgaande dat je Microsoft Visual C ++ (Express is ok), MinGW-gereedschapsketen hebt, Intel Compiler of de PharLap ETS-compiler die al is geïnstalleerd, SCons moeten uw computer kunnen vinden en gebruiken compiler.
SCons gebruiken
Sla als eerste voorbeeld de onderstaande code op als HelloWorld.c.
int main (int arcg, char * argv [])
{
printf ("Hallo, wereld! \ n");
}
Maak vervolgens een bestand met de naam SConstruct op dezelfde locatie en bewerk het zodat het deze regel eronder heeft. Als je HelloWorld.c opslaat met een andere bestandsnaam, zorg er dan voor dat de naam tussen de aanhalingstekens overeenkomt.
Programma ('HelloWorld.c')
Typ nu scons op de opdrachtregel (op dezelfde plaats als HelloWorld.c en SConstruct) en je zou dit moeten zien:
C: \ cplus \ blog> scons
scons: SConscript-bestanden lezen ...
scons: klaar met het lezen van SConscript-bestanden.
scons: Doelen bouwen ...
cl /FoHelloWorld.obj / c HelloWorld.c / nologo
HalloWereld.c
link / nologo / OUT: HelloWorld.exe HelloWorld.obj
scons: klaar met het bouwen van doelen.
Dit bouwde een HelloWorld.exe die bij het uitvoeren de verwachte uitvoer produceert:
C: \ cplus \ blog> HelloWorld
Hallo Wereld!
Opmerkingen
De online documentatie is erg goed om u op weg te helpen. U kunt verwijzen naar het beknopte enkele bestand man (handmatig) of de vriendelijkere, meer uitgebreide Gebruikershandleiding voor SCons.
SCons maakt het gemakkelijk om ongewenste bestanden uit de compilatie te verwijderen, voeg gewoon de parameter -c of -clean toe.
scons -c
Hiermee worden HelloWorld.obj en het bestand HelloWorld.exe verwijderd.
SCons is platformonafhankelijk en hoewel dit artikel ging over het aan de slag gaan met Windows, wordt SCons voorverpakt voor Red Hat (RPM) of Debian-systemen. Als je een andere smaak van Linux hebt, dan geeft de SCons-gids instructies voor het bouwen van SCons op elk systeem. Het is open source op zijn best.
SCons SConstruct-bestanden zijn Python-scripts, dus als je Python kent, heb je geen problemen. Maar zelfs als u dat niet doet, hoeft u slechts een kleine hoeveelheid Python te leren om er het beste uit te halen. Twee dingen die u echter moet onthouden:
- Opmerkingen beginnen met #
- U kunt printberichten toevoegen met print ("Some Text")
Merk op dat SCons alleen voor niet-.NET is, dus het kan geen .NET-code bouwen tenzij je SCons wat meer leert en een specifieke bouwer.