che sto seguendo il tuto:Qual è l'equivalente dell'opzione -mwindows di gcc in cmake?
http://zetcode.com/tutorials/gtktutorial/firstprograms/
Funziona ma ogni volta che fare doppio clic sul file eseguibile, v'è una console che io non lo voglio lì.
Come si elimina questa console?
ho provato questo:
add_executable(Cmd WIN32 cmd.c)
ma ho ottenuto questo errore fatale:
MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function ___tmainCRTStartup
Cmd.exe : fatal error LNK1120: 1 unresolved externals
Mentre si utilizza gcc lavora direttamente:
gcc -o Cmd cmd.c -mwindows ..
Sto indovinando che ha qualcosa a che fare con la funzione di inserimento: int main(int argc, char *argv[])
, ma perché gcc funziona?
Come posso farlo funzionare con cmake
?
UPDATE
Permettetemi di incollare il codice sorgente qui per comodità:
#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
Perché gcc -mwindows
opere ma add_executable(Cmd WIN32 cmd.c)
no?
Forse non è l'equivalente per -mwindows
in cmake?
Ma posso usare gcc per costruire una finestra con "main", perché non si può 'cmake'? A proposito, puoi elaborare una funzione 'WinMain' propper? Ho provato a cambiare 'main' in' WinMain' ma non funziona ancora. – Gtker
'int main (int, char **)' è la versione della console del punto di ingresso. 'int WinAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int)' è la versione con finestra del punto di ingresso. – Blindy
Sulla tua prima domanda, cmake fa esattamente quello che dici di fare. Non dovresti chiedere "perché non puoi fare?", Dovresti chiedere "perché non posso dire a cmake di ...?". – Blindy