Wie erstellt man ein Programm, das das Konsolenfenster nicht anzeigt?

8

Ich versuche ein Programm zu entwickeln, das die Bibliothek sdl2 benutzt. Es funktioniert soweit perfekt, aber wenn ich das Programm starte, bekomme ich zwei Fenster - das sdl2-Fenster und das Konsolenfenster.

Wie kann ich das Konsolenfenster ausblenden oder nicht? Vielleicht gibt es eine Art WinMain ?

    
Revertron 21.04.2015, 05:26
quelle

4 Antworten

10

Rust 1.18 führte ein Windows-Subsystem-Attribut ein. Schalten Sie die Konsole mit:

aus %Vor%

Die Rost-Binärdateien sind mit der GCC-Toolchain verknüpft. Um ein Programm zu starten, ohne ein Befehlszeilenfenster zu erzeugen, müssen Sie die Option -mwindows übergeben zum Linker .

Cargo hat einen cargo rustc Modus , mit dem zusätzliche Flags an rustc übergeben werden können. . Bevor dies eingeführt wurde, war noch keine Möglichkeit bekannt, eine Option an den Compiler mit Cargo zu übergeben .

In diesen Fällen besteht eine Umgehungslösung darin, das Fenster nach der Erstellung auszublenden:

%Vor%

Sie benötigen Folgendes in Ihrem Cargo.toml, um es zu kompilieren:

%Vor%

Um das Ausführen von einer vorhandenen Konsole oder IDE zu ermöglichen:

%Vor%

Diese zweite Methode funktioniert nicht, weil ich meine Anwendung aus einer Batchdatei starte. Sie sehen, die Charge besitzt immer noch die Konsole, so dass sie auf dem Bildschirm angezeigt wird.

    
ArtemGr 21.04.2015, 06:15
quelle
7

Nach einiger Zeit habe ich eine perfekte Antwort gefunden! Cargo hat jetzt einen sehr nützlichen Unterbefehl - rustc .

Der vollständige Build-Befehl ist wie folgt:

%Vor%

Jetzt können wir Debug-Builds mit regulärem cargo build erstellen, und wenn wir einen endgültigen Build erstellen müssen, können wir diesen Befehl verwenden:

%Vor%     
Revertron 17.12.2015 12:55
quelle
6

Wenn Sie Roman Quicks Antwort hinzufügen, wenn Sie die MSVC-Toolchain verwenden, sollten Sie stattdessen MSVC-Linker-Argumente übergeben.

%Vor%     
GhotiPhud 22.08.2016 19:19
quelle
6

Bald wird Ссылка landen, was eine Implementierung von RFC 1665 und die richtige Antwort lautet

%Vor%

in Ihrer Kistenwurzel.

    
Steve Klabnik 04.11.2016 14:00
quelle

Tags und Links