在cmake中相当于gcc的-mwindows选项是什么? [英] What's the equivalent of gcc's -mwindows option in cmake?

查看:774
本文介绍了在cmake中相当于gcc的-mwindows选项是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我按照tuto:



http://zetcode.com/tutorials/gtktutorial/firstprograms/



它可以工作,但每次我双击可执行文件,有一个



我如何摆脱那个控制台?



尝试此:

  add_executable(Cmd WIN32 cmd.c)

但有这个致命错误:

  MSVCRTD.lib obj):error LNK2019:未解析的外部符号_WinMain @ 16在函数___tmainCRTStartup中引用
Cmd.exe:致命错误LNK1120:1未解析的外部

使用gcc直接工作时:

  gcc -o Cmd cmd.c -mwindows。 。



我猜想它与输入函数有关: int main(int argc,char * argv []),但为什么gcc工作?



$ c> cmake ?



UPDATE 为方便起见,我在这里粘贴源代码:

  #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



为什么 gcc -mwindows 有效,但 add_executable(Cmd WIN32 cmd.c)不是? / p>

也许这不等同于cmake中的 -mwindows

解决方案

add_executable(Cmd WIN32 cmd.c)



告诉CMake这是一个Windows程序,它寻找WinMain的主。如果你想看到使用的标志,你可以运行make VERBOSE = 1。问题可能是如何定义WinMain for gtk应用程序?我知道与Qt,你链接在一个库定义它为你。


I'm following the tuto:

http://zetcode.com/tutorials/gtktutorial/firstprograms/

It works but each time I double click on the executable,there is a console which I don't want it there.

How do I get rid of that console?

I tried this:

add_executable(Cmd WIN32 cmd.c)

But got this fatal error:

MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
Cmd.exe : fatal error LNK1120: 1 unresolved externals

While using gcc directly works:

gcc -o Cmd cmd.c -mwindows ..

I'm guessing it has something to do with the entry function: int main( int argc, char *argv[]),but why gcc works?

How can I make it work with cmake?

UPDATE

Let me paste the source code here for convenience:

#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

Why gcc -mwindows works but add_executable(Cmd WIN32 cmd.c) not?

Maybe that's not the equivalent for -mwindows in cmake?

解决方案

add_executable(Cmd WIN32 cmd.c)

Tells CMake this is a Windows program, and it looks for WinMain instead of main. If you want to see the flags being used you can run make VERBOSE=1. The question might be how do you define WinMain for gtk apps? I know with Qt, you link in a library that defines it for you.

这篇关于在cmake中相当于gcc的-mwindows选项是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆