在Cygwin中对WinMain的未定义引用

Faw*_*sim 9 cygwin winmain

我正在尝试编译并遇到以下问题

$ gcc errlib.c -o errlib.o

/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/../../../../lib/libcygwin.a(libcmain.o): In function `main':
/usr/src/debug/cygwin-1.7.30-1/winsup/cygwin/lib/libcmain.c:39: undefined reference to `WinMain'
/usr/src/debug/cygwin-1.7.30-1/winsup/cygwin/lib/libcmain.c:39:(.text.startup+0x7e): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `WinMain'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

有什么建议?这些文件经过了很好的测试,并且之前生成的代码很好,但现在我认为可能会有一些cygwin设置或者......在cygwin上的windows 8上进行编译.

Pau*_*aul 12

使用-ccompile标志只生成目标文件.没有-c它尝试链接可执行文件和链接器(自动调用)失败.

  • 试试`gcc xyz.c abc.c def.c`。请注意,您需要在这些 `.c` 文件之一中定义 `main()`。`-I` 用于告诉编译器扫描包含文件的目录,而不是提供头文件名。你应该在你的 `xyz.c` 中使用 `#include "abc.h"` 和 `#include "def.h"`,并编译 `abc.c` 和 `def.c`。这就是`gcc xyz.c abc.c def.c` 所做的。 (2认同)