【问题标题】:'Undefined reference to `WinMain' ' error on minimal script, Dev-C++最小脚本 Dev-C++ 上的“未定义对‘WinMain’的引用”错误
【发布时间】:2021-06-15 07:20:44
【问题描述】:

我是 C 和编程新手。 我在 Windows 10 上,我刚刚安装了 Dev-C++,我正在学习如何从其他文件调用函数:我编写了这个函数来对两个数字求和,然后从主脚本中调用它。

问题是,当我编译 func.c 文件时,标题中出现错误,所以如果我运行主文件,它无法识别“sum”函数。 这是 main.c 文件:

#include <stdio.h>
#include "func.h" 
    main(){
      int x,y,s;
      scanf("%d %d",&x,&y);
      s = sum(x,y);
      printf("\n%d",s); 
      }

这是头文件:

#ifndef FUNC_H_INCLUDED
#define FUNC_H_INCLUDED

int func(int a, int b);

#endif // FUNC_H_INCLUDED

这是 func.c 文件中 sum 函数的代码:

#include <stdio.h>
#include "func.h"
int func(int a, int b){
    return(a+b);
}

我确实阅读了很多其他问题,但它们对我的情况没有帮助,或者我没有得到棘手的答案。 谢谢。

【问题讨论】:

  • 请详细说明“dev-c++”,有多个不同的产品同名(每个产品都有多个版本)。此外,此问题可能更适合“dev-c++”的支持论坛,因为该问题与 IDE 中编译器的错误配置和/或带有损坏的编译器的 IDE 的交付或错误有关在 IDE 中配置项目
  • 您说“我编译 func.c”,如果您尝试仅使用 func.c 编译可执行文件,那么您将在标题中看到错误。您的项目需要包含 main.c 和 func.c ,并编译它们并链接
  • 我确实读到我需要先编译 func.c,然后编译 main.c 才能使其工作。它们是两个独立的文件,我没有创建“新项目”。那是错的吗?抱歉,如果我的回答看起来很奇怪,那是我第一次谈论不同文件上的编译器和函数。
  • 尝试阅读 IDE 文档,您很可能确实需要创建一个项目才能拥有一个包含多个 .c 文件的项目。在任何 IDE 中都是一样的
  • 是的,我需要创建一个包含更多 .c/.h 文件的项目,我想我必须单独编译它们。谢谢!

标签: c undefined-reference dev-c++ winmain


【解决方案1】:

如果您使用的是 Embarcadero 的 Dev-C++。我使用他们的免费编译器,因为它是“可移植的”。

func.cfunc.h 都包含一个名为 func 的函数,而您的主文件有一个名为 sum 的函数,您必须在名称上保持一致,您可以使用 s=func(x,y) 并且应该可以,但一个好的做法是相反,将其他文件中的func 替换为sum。 而且你必须编译这3个文件,编译1或2是不够的。

使用 Embarcadero 的免费编译器编译它们:

C:\path\to\compiler\bcc32x func.c func.h main.c

它会给你main.exe,你可以从命令提示符运行。

【讨论】:

  • 我将 .c 和 .h 文件中的“func”重命名为“sum”。头文件编译没有错误,但编译 func.c 给我和以前一样的错误。分开编译有错吗?有没有办法将它们全部编译在一起?我去下载Embarcadero,或许能解决
猜你喜欢
  • 2020-07-18
  • 2017-08-07
  • 2020-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-18
相关资源
最近更新 更多