项目场景:

项目场景:在写c的时候使用#include调用同级目录下另一文件中的函数时,出现LNK2005 已经在*.obj中定义 错误

本人使用的编译环境为visual studio 2019


问题描述

在新手写c时,调用main.c同级下的另一文件中的函数时出现报错,提示已经在.obj中编译


原因分析:

提示:没有注意到程序编译的顺序,导致重复编译同一文件


解决方案:

提示:去掉#include调用,我的理解是:因为#include调用之后对同级目录下的文件已经完成了编译,所以在main函数中再一次调用这个函数,就会产生重复调用的结果,导致报错。

我的代码:

t.c

#include"y.h"int main()
{shu();_tmp_lyy();return 0;
}

y.h


#include <stdlib.h>
#include <string.h>void shu(void)
{printf("%d\n", 56);
}

tt.c

#include<stdio.h>
void _tmp_lyy(void)
{printf("zxc");
}

注意:这里说明一下,使用.h头文件只是为了尝试通过头文件而解决报错。我们可以看到

我们可以看到,这三个文件只有一个<stdio.h>引用,但是程序并没有报错,而<stdio.h>又在tt.c中,所以由此判断应该这三个文件中最先编译完成的应该是tt.c,所以再编译y.h时才没有报错——找不到printf函数。

LNK2005 已经在*.obj中定义 排雷相关推荐

  1. C++中的“error:LNK2005 已经在*.obj中定义”异常

     C++中的"error:LNK2005 已经在*.obj中定义"异常问题 异常现象如下: C++中的"error:LNK2005 已经在*.obj中定义" ...

  2. C++ error:LNK2005 已经在*.obj中定义

    一.错误 LNK2005 "int __cdecl test01(void)" (?test01@@YAHXZ) 已经在 ShellExecuteTest.obj 中定义 Test ...

  3. 关于VS “error LNK2005: 已经在 .obj 中定义“

    1>OpenCVFi.obj : error LNK2005: "class cv::Point_<double> __cdecl reverse(class cv::Po ...

  4. error LNK2005 已经在***.obj中定义

    编程中经常能遇到LNK2005错误--重复定义错误,其实LNK2005错误并不是一个很难解决的错误.弄清楚它形成的原因,就可以轻松解决它了.         造成LNK2005错误主要有以下几种情况: ...

  5. error:LNK2005 已经在*.obj中定义的一种情况及解决办法

    我的代码发生了这个错误,但是用了网上的#pragma once,#ifndef,extern都没能解决 经过仔细看代码发现,我的情况是这样的一个全局变量在一个头文件中定义,比如:head1.h中定义了 ...

  6. error:lnk2005 已经在*.obj中定义_如何在 Spring 中自定义 scope

    大家对于 Spring 的 scope 应该都不会默认.所谓 scope,字面理解就是"作用域"."范围",如果一个 bean 的 scope 配置为 sing ...

  7. vs报错 已经在 helpers.obj 中定义

    已经在 helpers.obj 中定义 1>正在生成代码... 1>localizer.obj : error LNK2005: "class std::vector<cl ...

  8. ZZmsvcprt.lib(MSVCP90.dll) : error LNK2005:已经在libcpmtd.lib(xmutex.obj) 中定义

    FROM: http://blog.csdn.net/sptoor/article/details/6203376 很久没有写程式设计入门知识的相关文章了,这篇文章要来谈谈程式库 (Library) ...

  9. error LNK2005: “找到一个或多个多重定义的符号” 已经在 xxxx.obj 中定义 的解决方法

    error LNK2005: "找到一个或多个多重定义的符号" 已经在 xxxx.obj 中定义 的解决方法 参考文章: (1)error LNK2005: "找到一个或 ...

  10. msvcprt.lib(MSVCP90.dll) : error LNK2005:已经在libcpmtd.lib(xmutex.obj) 中定义

    转载 很需要补充的知识. 可惜网络阅读一直不是强项. 目前实在有点看不进去. 先保存下来吧... 牛到连评论都是贼深奥滴! 很久没有写程式设计入门知识的相关文章了,这篇文章要来谈谈程式库 (Libra ...

最新文章

  1. android TextView显示文字和图片
  2. 挨踢(IT)脱口秀--2014年2015上半年特别“任性”的网络流行语大盘点
  3. android listview item 圆角,ListView圆角 实现方法(一)
  4. Vue + Nodejs + Express 解决跨域的问题
  5. 第七章 比高斯更快的计算
  6. html 标签内背景图片自适应 div 大小
  7. Electron 遭封杀,Web 开发者在苹果平台上举步维艰!
  8. php小程序秒抢高并发,微信小程序的10个请求并发限制的优化消息!!!
  9. camera中文版软件 ip_摄像头监控软件|IP Camera Viewer V 3.0.4.0 官方版-完美软件下载...
  10. 阴历阳历相互转换c代码
  11. 孩子成长-跟同学相处
  12. 学习C语言的心路历程
  13. keyshot渲染玻璃打光_keyshot打光技巧,教你如何制作汽车自由式布光效果
  14. java 时区id对应时区名称,Java 可以或失去的全部的时区ID
  15. 戴尔服务器提升性能,解析戴尔12G服务器的主要性能提升和改进
  16. Revit中土建模块【精准生梁】快速生成
  17. 华为路由器配置DHCP服务及给指定PC分配固定IP地址
  18. 计算机课作业怎么向老师提交,计算机基础课程作业布置与批改方式
  19. 从积性函数到莫比乌斯反演
  20. .net的域名是什么

热门文章

  1. 拼多多搜索API接口(关键词查询优惠券列表接口)
  2. 485Modbus协议
  3. Java 打印Hello World
  4. Java打印26个字母
  5. windows资源监视器
  6. zip命令加密和解密
  7. Java中获取时间戳三种方式
  8. 【avx2】VitrualBox 安装centos7 支持avx2
  9. 数据结构与算法部分术语中英文对照
  10. cadence从原理图导出器件库_一种cadence中原理图替换元器件库的方法与流程