Eines der Dinge, die ich an CodeBlocks finde, ist, dass ich schnell eine Datei erstellen, kompilieren und ausführen kann, ohne ein Projekt zu erstellen. Dies bedeutet jedoch, dass alle meine Programme Konsolenfenster haben, etwas, das für die meisten Windows-Anwendungen nicht normal ist.Wie kann ich das Subsystem in den zusätzlichen CodeBlocks Linker Optionen angeben?
Um es loszuwerden, habe ich immer ein Projekt zu erstellen hatte, in meiner Akte werfen, und navigieren Sie zu, wo ich statt Console ApplicationGUI-Anwendung klicken Sie einfach könnte.
Allerdings ist es natürlich möglich, dasselbe beim Erstellen mit g ++. Exe und ld.exe anzugeben, und CodeBlocks hat einen Abschnitt für zusätzliche Linker-Optionen, also dachte ich, ich könnte es dort stecken, um den Ärger von immer zu vermeiden ein Projekt zu erstellen, aber anscheinend lag ich falsch.
Erstens fand ich this question. Ich war überrascht, als ich herausfand, wer darauf antwortete, aber das hilft mir nicht, da der ganze Sinn darin liegt, dass ich es mit ungefähr der gleichen Anstrengung ohne ein Projekt erstellen kann.
Offensichtlich wird die Compileroption -mwindows
das tun, also habe ich versucht, das in Settings\Compiler and Debugger\Compiler settings\Other options
setzen, und es kompiliert und Links gut, aber immer noch ein Konsolenfenster.
Als nächstes habe ich versucht, Settings\Compiler and Debugger\Linker settings\Other linker options
. Angetrieben von den Google-Ergebnissen habe ich versucht, Folgendes hinzuzufügen, eine Option, die jeweils aktiv ist, und den Wiederaufbau. -mwindows
aktiv zu haben macht keinen Unterschied, soweit ich das beurteilen kann.
-Wl: Unbekanntes Befehlszeilenoption
--subsystem, Fenster: Unbekanntes Befehlszeilenoption
--subsystem, Fenster: Fenster - Keine solche Datei oder ein Verzeichnis.
--Teilsystem Windows: Windows - Keine solche Datei oder Verzeichnis.
--subsystem = windows: Unregocnized Befehlszeilenoption
--subsystem, Konsole: Konsole - Keine solche Datei oder ein Verzeichnis.
Dieser Test wurde alles auf dem neuesten Release von Codeblöcken getan, Codeblöcken 12.11 und GCC 4.7.2, erhielt von this MinGW distro (Version 9.4). Ich bin mir aber ziemlich sicher, dass es mit CodeBlocks 10.05 genauso funktioniert.
Muss ich ein Projekt verwenden, ein Makefile verwenden oder es über die Befehlszeile erstellen, oder ist es möglich, diese Einstellung direkt in den globalen CodeBlocks IDE-Einstellungen zu ändern?
* "hat aber immer noch ein Konsolenfenster" *. Ist das GUI-Fenster aufgetaucht? –
@MarkGarcia, Dasjenige, auf dem ich gerade teste, hat eigentlich kein GUI-Fenster. Ich habe jedoch GUI-freie Programme in ein Projekt eingefügt und es so gemacht, was gut funktionierte: Beim Starten des Programms würde der Benutzer nichts bemerken. Bevor Dienste erwähnt werden, muss es interagieren. Es wird tatsächlich von einem Dienst gestartet werden. Normalerweise würde ich mich an die üblichen Praktiken halten, aber diese ist nicht wirklich eine normale Anwendung - es ist als ein Witz gemeint. Die Technik, die in einer Antwort erklärt wird, kann jedoch genauso gut auf Programme * mit * einer GUI angewendet werden :) – chris
@MarkGarcia, Entschuldigung, ich weiß, dass ich deine Frage in all dem nicht beantwortet habe.Ich habe einen mit einem Fenster gefunden und versucht, das mit "mwindows" zu kompilieren und auszuführen. Sowohl die Konsole als auch das Fenster erscheinen. – chris