windows下编译GTK如何去掉可恶的cmd窗口啊?

软件和网站开发以及相关技术探讨
回复
头像
haoyihuan
帖子: 271
注册时间: 2009-06-11 13:37

windows下编译GTK如何去掉可恶的cmd窗口啊?

#1

帖子 haoyihuan » 2013-12-26 13:57

如题! :em06
跑debian应该是有点搞头的吧。
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

Re: windows下编译GTK如何去掉可恶的cmd窗口啊?

#2

帖子 jinjiachen » 2013-12-26 14:31

cmd可恶那终端呢?我觉得它们很相似啊 :em06
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: windows下编译GTK如何去掉可恶的cmd窗口啊?

#3

帖子 YeLee » 2013-12-26 16:06

记得之前听人说是编译成Release version就可以了。
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
haoyihuan
帖子: 271
注册时间: 2009-06-11 13:37

Re: windows下编译GTK如何去掉可恶的cmd窗口啊?

#4

帖子 haoyihuan » 2013-12-27 10:22

可以去掉了,不过得手动编译。
`pkg-config --cflags --libs gtk+-3.0`前面加个-mwindows就可以了,放后面没有试过。
用codeblocks编译的时候,即使加上-mwindows还是无效。

顺便挂个新问题:
pkg-config --cflags --libs gtk+-3.0单独运行可以,放在gcc编译的时候用就出错:

代码: 全选

D:\C>gcc -o test.exe test.c `pkg-config --cflags --libs gtk+-3.0`
gcc: error: `pkg-config: No such file or directory
gcc: error: unrecognized command line option '--cflags'
gcc: error: unrecognized command line option '--libs'
gcc: error: gtk+-3.0`: No such file or directory
搞得我现在得手动输后面的内容。

是不是dos不支持``?
跑debian应该是有点搞头的吧。
nae6taiyie0T
帖子: 482
注册时间: 2013-09-13 0:42
系统: Debian sid

Re: windows下编译GTK如何去掉可恶的cmd窗口啊?

#5

帖子 nae6taiyie0T » 2013-12-27 10:29

haoyihuan 写了:可以去掉了,不过得手动编译。
`pkg-config --cflags --libs gtk+-3.0`前面加个-mwindows就可以了,放后面没有试过。
用codeblocks编译的时候,即使加上-mwindows还是无效。

顺便挂个新问题:
pkg-config --cflags --libs gtk+-3.0单独运行可以,放在gcc编译的时候用就出错:

代码: 全选

D:\C>gcc -o test.exe test.c `pkg-config --cflags --libs gtk+-3.0`
gcc: error: `pkg-config: No such file or directory
gcc: error: unrecognized command line option '--cflags'
gcc: error: unrecognized command line option '--libs'
gcc: error: gtk+-3.0`: No such file or directory
搞得我现在得手动输后面的内容。

是不是dos不支持``?
`CMD` 的作用是, 把CMD作为命令来执行, 并把运行的结果填充到`CMD`所在的位置. 很明显, 命令提示符不具有这样的功能.
在windows平台下, 可以把编译工作都放到Makefile里面, 让它来自动去做.
头像
haoyihuan
帖子: 271
注册时间: 2009-06-11 13:37

Re: windows下编译GTK如何去掉可恶的cmd窗口啊?

#6

帖子 haoyihuan » 2013-12-28 0:38

`CMD` 的作用是, 把CMD作为命令来执行, 并把运行的结果填充到`CMD`所在的位置. 很明显, 命令提示符不具有这样的功能.
在windows平台下, 可以把编译工作都放到Makefile里面, 让它来自动去做.
mingw解压版的,make命令没有用。
有一个方法是写一个makefile.bat,这里面可以设置变量,貌似也不可以用··
我更想知道的是windows有没有像··功能的东东
跑debian应该是有点搞头的吧。
nae6taiyie0T
帖子: 482
注册时间: 2013-09-13 0:42
系统: Debian sid

Re: windows下编译GTK如何去掉可恶的cmd窗口啊?

#7

帖子 nae6taiyie0T » 2013-12-28 9:18

haoyihuan 写了:
`CMD` 的作用是, 把CMD作为命令来执行, 并把运行的结果填充到`CMD`所在的位置. 很明显, 命令提示符不具有这样的功能.
在windows平台下, 可以把编译工作都放到Makefile里面, 让它来自动去做.
mingw解压版的,make命令没有用。
有一个方法是写一个makefile.bat,这里面可以设置变量,貌似也不可以用··
我更想知道的是windows有没有像··功能的东东
mingw里面是可以使用make的, 应该是你哪里没有设置好.

说一下我的安装方法:
1. 下载MinGW-get-setup.exe, 在这里 http://sourceforge.net/projects/mingw/files/Installer/, 然后把它装好.
2. 启动MinGW-Installer, 然后选择Basic Setup, 并选中三个meta包, 分别是mingw-developer-toolkit, mingw32-base, msys-base. 这一步很慢, 将近七分钟. 如图:
MinGW-Installer.png
3. 可选步骤, 将MinGW\bin 加入到环境变量中.
4. 找到\MinGW\msys\1.0\这个目录, 双击msys.bat, 就会打开我们熟悉的bash环境, 包含了标准的GNU coreutils工具包, 还有其它的编程工具, 比如make, diff, grep, vim.... 需要的话, 可以把msys.bat发送到桌面快捷方式. 如图
msys-1.0.png
5. 测试编译hello.c, 没有问题; 测试Makefile, 也没有问题.
hello world.png
hello world.png (10.78 KiB) 查看 10033 次
头像
tangboyun
帖子: 701
注册时间: 2009-07-25 1:57
联系:

Re: windows下编译GTK如何去掉可恶的cmd窗口啊?

#8

帖子 tangboyun » 2014-02-04 20:09

楼主1楼的问题:
去掉命令行窗口, CFLAGS里添加 -mwindows
4楼的出错原因是:
pkg-config所在目录不在PATH环境变量里
什么缺少make,不能configure之类的是因为你没装msys。
上次由 tangboyun 在 2014-02-04 20:21,总共编辑 1 次。
https://github.com/tangboyun
http://tangboyun.is-programmer.com/
提问的智慧————Eric Steven Raymond
回答的智慧————Andrew Clarke
吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。
急急急标题什么的,最讨厌了!
急急复急急,急急何其多,我生待急急,万事急急急。
头像
tangboyun
帖子: 701
注册时间: 2009-07-25 1:57
联系:

Re: windows下编译GTK如何去掉可恶的cmd窗口啊?

#9

帖子 tangboyun » 2014-02-04 20:20

nae6taiyie0T 写了:
haoyihuan 写了:
`CMD` 的作用是, 把CMD作为命令来执行, 并把运行的结果填充到`CMD`所在的位置. 很明显, 命令提示符不具有这样的功能.
在windows平台下, 可以把编译工作都放到Makefile里面, 让它来自动去做.
mingw解压版的,make命令没有用。
有一个方法是写一个makefile.bat,这里面可以设置变量,貌似也不可以用··
我更想知道的是windows有没有像··功能的东东
mingw里面是可以使用make的, 应该是你哪里没有设置好.

说一下我的安装方法:
1. 下载MinGW-get-setup.exe, 在这里 http://sourceforge.net/projects/mingw/files/Installer/, 然后把它装好.
2. 启动MinGW-Installer, 然后选择Basic Setup, 并选中三个meta包, 分别是mingw-developer-toolkit, mingw32-base, msys-base. 这一步很慢, 将近七分钟. 如图:
MinGW-Installer.png
3. 可选步骤, 将MinGW\bin 加入到环境变量中.
4. 找到\MinGW\msys\1.0\这个目录, 双击msys.bat, 就会打开我们熟悉的bash环境, 包含了标准的GNU coreutils工具包, 还有其它的编程工具, 比如make, diff, grep, vim.... 需要的话, 可以把msys.bat发送到桌面快捷方式. 如图
msys-1.0.png
5. 测试编译hello.c, 没有问题; 测试Makefile, 也没有问题.
hello world.png
不建议新手用MinGW-get-setup去装win下的gtk编译环境,原因是版本更新太快(目前是mingw-gcc-4.8.1),mingw不同版本之间头文件变动很大(特别是mingw-gcc 4.5 -> 4.6),用MinGW-get-setup装c编译环境是快,但必须自己再用相同的编译环境去编译一次gtk(目前gtk.org提供的win32预编译版本都是gcc-4.6.2的),否则就是运行时bug之源。。。。

如果只是c/c++和gtk的话推荐使用win-builds的预编译下载脚本,当然它用的是mingw-w64(和mingw的头文件也是有些许不同,不能混的)
要是很精通编译和链接的话,推荐读下 http://www.tarnyko.net/repo/gtk3_build_system/ 下的 win32 编译相关内容(作者是gtk的win32预编译包维护者),软件包和编译脚本以及需要的patch都有,可以自行修改。
https://github.com/tangboyun
http://tangboyun.is-programmer.com/
提问的智慧————Eric Steven Raymond
回答的智慧————Andrew Clarke
吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。
急急急标题什么的,最讨厌了!
急急复急急,急急何其多,我生待急急,万事急急急。
回复