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
?
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.
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: