有没有办法编译Windows GUI,这是tcc中没有控制台的exe?

时间:2013-12-02 04:06:44

标签: c windows tcc

我知道gcc中的切换但是在TTC中没有关于这样的选项。我读了一些关于_winstart或什么swich但我不知道放在哪里的东西。

2 个答案:

答案 0 :(得分:1)

好的,似乎可以在tcc中创建非控制台应用程序。我还没弄清楚这里需要的关键要素是什么。但是在tcc包中有hello_win.c例子。

答案 1 :(得分:0)

tcc -Wall -Wl,-subsystem = windows example.c -luser32

没有弹出控制台窗口。见tcc -hh

example.c:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

// need -luser32 at end of tcc cmd line. user presses OK returns 1.

int main(int argc, char *argv[]) {
    char *banner = malloc(100);
    sprintf(banner, "tcc is great, %d cmd line or DRAGGED args", argc - 1);
    while (argc-- > 0) MessageBox(NULL, argv[argc], banner, 1 + 256);
    return(0);
}

要在文件example.ico中添加一个图标(例如由irfanview生成)到可执行文件,请使用cygwin util windres,创建一个文件example.rc:

this ICON example.ico

然后

windres example.rc -O coff -o example.res

并使用

tcc -Wall -Wl,-subsystem=windows example.c -luser32 example.res

顺便说一句,我使用了来自http://repo.or.cz/tinycc.git的tcc,并在cygwin下编译了这个版本的tcc:

./configure --tccdir=/usr/tcc --bindir=/usr/bin
make
make install
BTW2:谁知道如何在Windows下将更多args传递给这些c程序?有一些窗户限制。拖动1000个args,得到文件名或扩展名太长了#39;窗户边限制。 Windows和商业程序没有此限制。

John Refling