【问题标题】:eclipse + cdt + mingw + windows error "undefined reference to `WinMain@16'" on buildeclipse + cdt + mingw + windows 错误“未定义对‘WinMain@16’的引用”
【发布时间】:2011-03-17 04:41:19
【问题描述】:

我在我的 Windows XP 机器上安装了 eclipse、cdt 和 mingw。已将 C:\MinGW\bin 添加到我的 PATH 中。

创建了一个新的 c++ 项目,其中包含一个文件 test.c。里面的代码:

int main(){
   int i=1;
}

尝试构建,我收到错误: /mingw/lib/libmingw32.a(main.o):main.c:(.text+0xd2): undefined reference to 'WinMain@16'

请注意,它不是在抱怨 test.c,而是在抱怨 mingw 的一个库中的一些 main.c

我做错了什么?

【问题讨论】:

  • 您有用于调用编译器的命令行吗?您的问题似乎是链接之一,而不是编译。 (也许您缺少指向libmsvcrt.a 的链接)
  • @Mark - 谢谢,我没有注意到编译和链接命令正在尝试编译与包含主文件的文件不同的文件

标签: windows eclipse mingw eclipse-cdt


【解决方案1】:

您需要先保存.c 文件。

【讨论】:

    【解决方案2】:

    好吧,这个解决方案真的很奇怪,但我想这对于比我更精通 CDT 的人来说是有意义的 - 我的 main() 在 .c 文件中。当我将后缀更改为 .cpp 时,它就像一个魅力。

    【讨论】:

    • 也许因为您创建了一个“C++ 项目”,CDT 没有考虑 .c 文件的一部分。
    • 发生在我身上的正好相反:我的 main() 在一个 .cpp 文件中,而该项目是一个“C 项目”,因此 CDT 没有考虑 .cpp 文件。
    【解决方案3】:

    链接器不应搜索来自 libmingw32.a 的 main.o,因为您编写的“int main()”(应该)满足来自 crt2.o 的未定义符号 _main。

    请复制并粘贴 cdt 正在执行的 gcc 命令行。

    【讨论】:

      猜你喜欢
      • 2020-07-18
      • 1970-01-01
      • 1970-01-01
      • 2020-07-12
      • 2021-11-18
      • 2013-01-15
      相关资源
      最近更新 更多