Wie füge ich in Linux einen Build-Schritt in Qt Creator hinzu, der su-Berechtigungen verwendet, ohne die falschen Kennwortversuche für Builds zu erhalten?

Mein Ziel ist es, einen Ordner erfolgreich mit / opt / directory zu verknüpfen, der mit sudo ausgeführt werden muss.

Ich habe das versucht:

 system(sudo ln -s $OUT_PWD/xampp /opt/lampp):message("You should manually link LAMPP")

Aber das Erstellen von qt-creator fordert nicht zur Eingabe eines sudo-Passworts auf, daher konnte ich es nicht zum Verknüpfen des Ordners bringen. Ich habe den Fehler "Falsche Passwortversuche ..." in der Compiler-Ausgabe erhalten. Dann habe ich diese mit Build-Schritten ausprobiert:

make
sudo make install

um zu sehen, ob es mich dazu veranlassen würde, aber es ist fehlgeschlagenmake install Schritt mit dem gleichen Fehler, das ist im Detail:

00:31:20: Starting: "/usr/bin/sudo" make install
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts
00:31:20: The process "/usr/bin/sudo" exited with code 1.

Dassystem() Funktion im qmake-Skript funktioniert einwandfrei, wenn ich benutzeqmake && make && make install vom terminal da fordert es mich schon mal aufsudo ln... Befehl; aber für schnelle Testzwecke sollte das Bauen mit STRG-B in Qt Creator auch mit sudo-Befehlen funktionieren ...

Gibt es eine Möglichkeit, von Qt Creator aufgefordert zu werden, oder eine Möglichkeit, dies zu umgehen? Wie das Speichern des Sudo-Passes im Qt Creator (obwohl es riskant ist) ... oder das Ausführen von Build-Schritten auf einem Terminal, auf dem es mich dazu auffordern würde? Würdeprompt() funktioniert in qmake das sammeln von sudo passwörtern?

Anregungen sind willkommen ...

Antworten auf die Frage(4)

Ihre Antwort auf die Frage