que sigo el tuto:¿Cuál es el equivalente de la opción -mwindows de gcc en cmake?
http://zetcode.com/tutorials/gtktutorial/firstprograms/
Funciona, pero cada vez que hago doble clic en el archivo ejecutable, hay una consola de la que no quiero allí.
¿Cómo me deshago de esa consola?
yo probamos este:
add_executable(Cmd WIN32 cmd.c)
Pero tiene este error fatal:
MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function ___tmainCRTStartup
Cmd.exe : fatal error LNK1120: 1 unresolved externals
bien la utilización de gcc trabaja directamente:
gcc -o Cmd cmd.c -mwindows ..
supongo que tiene algo que ver con la función de entrada: int main(int argc, char *argv[])
, pero ¿por qué funciona gcc?
¿Cómo puedo hacer que funcione con cmake
?
ACTUALIZACIÓN
Déjame pegar el código fuente aquí por conveniencia:
#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
Por qué gcc -mwindows
funciona, pero no add_executable(Cmd WIN32 cmd.c)
?
Quizás ese no sea el equivalente de -mwindows
en cmake?
Pero puedo usar gcc para crear un programa de ventana con 'main', ¿por qué no' cmake'? Por cierto, ¿puedes elaborar cuál es la función 'WinMain' adecuada? Intenté cambiar 'main' por' WinMain' pero aún no funcionaba. – Gtker
'int main (int, char **)' es la versión de consola del punto de entrada. 'int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int)' es la versión en ventana del punto de entrada. – Blindy
Acerca de su primera pregunta, cmake hace exactamente lo que le dice que haga. No debe preguntar "¿por qué no puedo hacer?", Debería preguntar "¿por qué no puedo decirle a cmake que ...?". – Blindy