Ich bin nach dem tuto:Was entspricht der gcc-Option -mwindows in cmake?
http://zetcode.com/tutorials/gtktutorial/firstprograms/
Es funktioniert, aber jedes Mal, wenn ich auf die ausführbare Datei doppelklicken, gibt es eine Konsole, die ich es dort nicht wollen.
Wie werde ich diese Konsole loswerden?
Ich versuchte dies:
add_executable(Cmd WIN32 cmd.c)
aber bekam diesen fatalen Fehler:
MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function ___tmainCRTStartup
Cmd.exe : fatal error LNK1120: 1 unresolved externals
Während direkt arbeitet mit gcc:
gcc -o Cmd cmd.c -mwindows ..
Ich vermute, es ist etwas zu tun hat mit der Eintragsfunktion: int main(int argc, char *argv[])
, aber warum gcc funktioniert?
Wie kann ich es mit cmake
arbeiten lassen?
UPDATE
Lassen Sie mich den Quellcode einfügen hier der Einfachheit halber:
#include <gtk/gtk.h>
int main(int argc, char *argv[])
{
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(window);
gtk_main();
return 0;
}
UPDATE2
Warum gcc -mwindows
funktioniert, aber add_executable(Cmd WIN32 cmd.c)
nicht?
Vielleicht ist das nicht gleichbedeutend für -mwindows
in cmake?
Aber ich kann gcc verwenden, um ein Fensterprogramm mit 'main' zu erstellen, warum kann' cmake' nicht? Übrigens, können Sie näher erläutern, was eine "WinMain" -Funktion ist? Ich habe versucht, 'main' in' WinMain' zu ändern, funktioniert aber immer noch nicht. – Gtker
'int main (int, char **)' ist die Konsolenversion des Einstiegspunktes. 'int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int)' ist die gefensterte Version des Einstiegspunktes. – Blindy
Über deine erste Frage, cmake macht genau das, was du sagst. Sie sollten nicht fragen "Warum kann nicht cmake?", Sollten Sie fragen "Warum kann ich nicht sagen CMKE zu ...?". – Blindy