gpt4 book ai didi

c - C中的多个文件编译错误

转载 作者:太空宇宙 更新时间:2023-11-03 23:47:04 24 4
gpt4 key购买 nike

我尝试在 Visual Studio 2010 中编译两个源文件(client.c 和 server.c)。

我创建了一个项目并将它们保存在“源文件”文件夹中,但是当我运行时出现错误,指出 main() 已在其他文件中定义。当我删除一个文件(server.c 或 client.c)时,另一个文件被编译。

我尝试了很多事情来把事情做好,也在代码块中尝试过,同样的事情发生了。

最佳答案

正如您提到的您有两个 C 程序:一个服务器和一个客户端,我有效地假设它们应该作为两个不同的进程(或线程)运行。

  • 将它们分成一个工作区下(或不同工作区)下的两个不同项目。您可以简单地将其他依赖项(如果有的话)复制到新创建的项目中。
  • 分别编译两个项目
  • 获取两个可执行文件并运行它们。

main() 是一个入口函数,因此应该只有一个名为 main() 的函数,因为一个程序只能有一个入口点。 (是的,有一些异常(exception)情况,您可能有多个 main() 实例)而且,是的,在将控制权传递给 main() 之前,有可能会执行一个或多个函数。
最可能的情况和示例是基于微 Controller 的嵌入式系统,其中您有一个重置处理程序和/或一个启动处理程序。


附加数据(与这个问题无关):

事实上,如果您尝试如下所示声明这两个函数,

void customDestructor(void) __attribute__ ((destructor));

void customConstructor(void) __attribute__ ((constructor));

您可以在执行 main() 之前添加任何您想要的实现。

关于c - C中的多个文件编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30166296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com