Stellen Sie "stellen Sie" default "make -j 8"
Gibt es eine Möglichkeit, dass ich machen kann
$ make
standardmäßig:
$ make -j 8
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine Möglichkeit, dass ich machen kann
$ make
standardmäßig:
$ make -j 8
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
alias make="make -j 8"
, vorausgesetzt, bash-shellSetzen Sie die Umgebungsvariable MAKEFLAGS zu
-j 8
. Falls Sie mit csh oder tcsh, Sie können dies tun, mitsetenv MAKEFLAGS '-j 8'
. Wenn Sie die bash benutzen, können Sie dies mitexport MAKEFLAGS='-j 8'
. Sie vielleicht wollen, setzen Sie diesen Befehl in Ihrer shell-start-up-Datei, wie .cshrc oder .bashrc (im home-Verzeichnis).Achtung: Vorgabe wie diese für alle Aufrufe von machen, auch wenn Sie nicht "machen", einem anderen Projekt als Ihr eigenes oder ein Skript ausführen, das ruft machen. Falls das Projekt noch nicht gut gestaltet, es könnten Probleme haben, wenn es gebaut ist mit mehreren Aufträgen die Ausführung parallel.
Die Antworten, die darauf hindeutet
alias make='make -j 8'
sind in Ordnung, die Antworten auf deine Frage.Allerdings würde ich empfehlen gegen tun!
Mit allen Mitteln, verwenden Sie ein alias zum speichern eingeben - aber nennen Sie es etwas anderes als
make
.Könnte es OK sein, für welches Projekt Sie gerade arbeiten; aber es ist durchaus möglich, schreiben von makefiles mit fehlenden Abhängigkeiten, die nicht ganz richtig mit
-j
, und wenn Sie stoßen eine solche Sache, Sie werden sich Fragen, warum der build fehlschlägt, in einer geheimnisvollen Art und Weise für Sie, aber funktioniert gut für andere Menschen.(Das heißt, wenn Sie tun alias
make
erhalten Sie bash zu ignorieren alias durch Eingabe von\make
.)Wenn Sie mit der Befehlszeile, die Sie tun können:
Dieser nur vorübergehend sein wird, um Sie permanent zu machen, müssen Sie hinzufügen .bashrc
Lesen Sie hier: http://www.linfo.org/make_alias_permanent.html
Hinzufügen
zu
/etc/make.conf
(erstellen, falls nicht bereits vorhanden).Wenn das nicht funktioniert, fügen Sie
Ihrem system-wide profile (z.B. /etc/profile).
Für mich, MAKEOPTS allein hat nicht funktioniert. Möglicherweise MAKEFLAGS ist alles, was benötigt wird.
MAKEFLAGS
bekommt nur-j
ohne Ziffernstrings /usr/bin/make | grep MAKEOPTS
gibt auch nichts), bekomme ich' -j4 --jobserver-auth=3,4' must have --jobs=4
.Warum nicht erstellen eine äußere makefile verlangt, einem anderen makefile wie dieses ist, das repliziert wird, von der manuellen hier.
Wenn du mit einem GNU make:
...dann habe ich festgestellt, dass
GNUMAKEFLAGS
scheint zu funktionieren:Disclaimer, ich bin ein n00b mit der C toolchain, also sorry, wenn dies nicht tragbar. Es funktioniert auf Alpine Linux 3.8 (im Docker) obwohl.
Konnten Sie
/usr/bin/make
zu/usr/bin/make_orig
und machen/usr/bin/make
dieses Skript:Vergewissern Sie sich, dass
chmod +x /usr/bin/make
.Versuchen Sie diese Methode, wenn die einfachere Methode in meine andere Antwort nicht funktioniert. Diese Methode ist nicht so sicher und ist ein bisschen ein Durcheinander.