说明:在我们调试C语言的过程中,经常会遇到duplicate symbol错误(在Mac平台下利用Xcode集成开发环境)。如下图:

一.简单分析一下C语言程序的开发步骤。

由上图我们可以看出C语言由编写源程序->编译->链接->运行几个步骤进行。

编写源程序:

C语言的源文件的扩展名为.c,源文件以ASCII的形式存储,不能直接被计算机执行。

编译:

1.把C语言源程序翻译成计算机可以识别的二进制代码,由编译器完成。

2.编译的同时进行语法检查,如果发现语法错误,则编译失败。如果编译成功,生成扩展名为“.obj”的目标文件。

3.每个源文件是单独进行编译的,如果一个项目中有多个.c源文件,则会生成多个.obj目标文件。

链接:

1.将所有有关联的obj目标文件,及系统提供的C库函数等组合在一起生成可执行文件。

2.生成的可执行文件的文件名与源程序文件名形同,计算机可以直接执行。

运行:

双击即可运行生成的可执行文件。

二.错误原因

源文件中引入的另一个源文件。

例如:在main.c中#include

三.错误分析

由于编译的过程是对每个源文件单独进行编译的,如果单个源文件没有语法错误,编译就会通过。而链接过程是将所有有关联的obj目

文件及系统的库函数组合在一起。而include预处理指令类似与代码的拷贝,并且C语言默认情况下不允许重复定义函数,因此引入的源文件

中函数在链接时会报重复定义的错误。也就是我们看到的duplicate symbol错误。

小伙伴们,以后要注意了,在C语言开发中,不允许在源文件中引入其他的源文件,只可以引入头文件呦!

关于火狐浏览器在开发调试过程中,出现javascript:void(0)的状态

关于火狐浏览器在开发调试过程中,出现javascript:void(0)的状态 由于火狐浏览器没有安装 Adobe Flash Player 19 NPAPI这个插件 安装好了之后就可以直接运行了

Android APP 调试过程中遇到的问题。

调试过过程中APP安装完启动后有的时候会异常退出,报这个错误.有的时候可以直接启动.查找不到原因.网上说把commit方法替换成commitAllowingStateLoss() 也无效. Andro ...

调试过程中发现按f5无法走进jdk源码

debug 模式 ,在fis=new FileInputStream(file); 行打断点 调试过程中发现按f5无法走进jdk源码 package com.lzl.spring.test; impo ...

【转】MFC中调试过程中查看输出信息 -- 不错

原文网址:http://blog.sina.com.cn/s/blog_4e24d9c501014o39.html 笔记&&方便查阅. ~~~~~~~~~~~~~~~~~~~~~~~~ ...

Android Studio 调试过程中快捷查看断点处变量值(Ctrl+Shift+I无效)?

当你在做Keymap到Eclipse后,在debug过程中,在Eclipse中我们很喜欢用Ctrl+Shift+I去查看一个运算或者调用的结果,这样用起来很方便.但是keymap到Eclipse后,你 ...

[ISE调试] 在ISE调试过程中,遇到过的warning以及消除办法

1.在generate的过程中,在Map环节遇到了下面这个warning 意思:告诉你是黑盒子,而且他本来在设计里面就是黑盒子. 解决办法:点击图中的,会弹出一个代码文件,是声明这个IP核的文件,代码 ...

代码调试过程中easy遇到的问题

前两天身体有些不舒服,也没写啥新文章,昨天下了一天的雨.今天阳光明媚,空气也非常新奇.心情大好. 继翻译为什么输出是String而不是Object,今天先写一下调试方面的东西.java中自带的函数调试 ...

IIC通信控制的AD5259------在调试过程中遇到的奇葩问题

首先说一下的遇到的问题: 1.AD5259按照SCL是100KHz的情况下,可以正常接收上位机的数据,但是一段时间后,就不能正确的按照时序来走了 原因在于AD5259在接收到上位机的数据后需要一定的响 ...

YARN调试过程中的常见问题

执行操作: hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.0.jar wordcount  /user/today/i ...

随机推荐

Java内存模型深度解读

Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的.Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型. 如果你想设计表现良好的并发 ...

Scala学习 —— 元组&映射

再说集合之前,我们先来回顾一下映射&元祖 映射是键/值对偶的集合,Scala有一个通用的叫法--元组,也就是n个对象的聚集,并不一定要相同类型的.对偶不过是一个n=2的元祖.元祖对于那种需要将 ...

使用elk+redis搭建nginx日志分析平台

elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态 ...

[MODX] 1. Template *

After uploading javascript, css and images to the assets folder. We try to use Template to customize ...

iOS 在viewController中监听Home键触发以及重新进入界面的方法

第一步:创建2个NSNotificationCenter监听 [[NSNotificationCenter defaultCenter] addObserver:self selector:@sele ...

javascript的模块开发方法;

c语言调试过程中的错误,C语言调试过程中duplicate symbol错误分析相关推荐

  1. php 系统日志,PHP中把错误日志保存在系统日志中(Windows系统)

    PHP中把错误日志保存在系统日志中(Windows系统) [将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: 复制代码 代码如下: error_log = syslog ...

  2. php输出mysql错误日志_PHP_PHP中把错误日志保存在系统日志中(Windows系统),【将错误记录到系统日志中】 - phpStudy...

    PHP中把错误日志保存在系统日志中(Windows系统) [将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: error_log = syslog 或者在运行时使用 i ...

  3. php 保存错误日志,PHP中把错误日志保存在系统日志中_PHP教程

    PHP中把错误日志保存在系统日志中 这篇文章主要介绍了PHP中把错误日志保存在系统日志中(Windows系统),本文讲解了设置方法和查看方法,需要的朋友可以参考下 [将错误记录到系统日志中] 在 ph ...

  4. ng-template 使用过程中参数传递错误的单步调试

    本文涉及到的代码,位于这个 Github 仓库:https://github.com/wangzixi-diablo/ngDynamic 问题描述 我使用如下代码,期望在使用 *ngTemplateO ...

  5. c语言输出的时候换行错误,C语言中关于输出n个数后就换行的问题。

    vc11(vs2012)下编译php 需要原料: vs2012.php源码 1.本机的mingw没搞定,参考网上文章尝试vs2012编译,借助vs2012自带的命令行工具: 需要去bison官网下载b ...

  6. 做c语言时经常遇到的错误,C语言新人常见问题与错误

    不知不觉,学习C语言也快一年了.虽然有C语言课,但是老师完全让我们自己看书,在自学的过程中,和周围同学交流中,以及后来在CSDN,BCCN,百度知道看帖回帖中,也看到许多C语言新人常遇到的问题与常犯的 ...

  7. 写c语言会出现哪些常见错误,C语言编写常见错误

    C51语言编写常见错误 一.循环 1).在进行while,do...while循环时要对while括号里面的变量赋初值,否则可能出现的不是自己想要的结果. 2).在写for循环语句中,特别要注意括号里 ...

  8. c语言怎么打开mp4格式错误,c语言怎么播放MP4?

    C语言编写?windows系统下的还是linux系统下的? 不管有多简单,没有几千行代码是无法实现的. 首先你要会在屏幕上显示图形,这个是显示视频时需要的,显示是最终结果,过程是解码MP4格式的文件, ...

  9. php 错误记录_PHP中把错误日志保存在系统日志中(Windows系统)

    [将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: error_log = syslog 或者在运行时使用 ini_set() 函数设置. [例1] //关闭错误显示 ...

最新文章

  1. python 调用linux命令-Python Linux系统管理之Python中执行外部命令
  2. boost::function30的用法实例
  3. Excel的VBA连接数据库方法
  4. PHP5.5中新增的参数跳跃和生成器功能介绍
  5. 4.7 什么是深度卷积网络?
  6. Windows引导及安装
  7. mysql的逻辑备份和恢复
  8. JAVA实现飞机大战详解
  9. SQL Server索引 (原理、存储)聚集索引、非聚集索引、堆 第一篇
  10. 去银行当程序员是一种什么体验
  11. 基于MPC算法的汽车自适应巡航系统仿真与分析
  12. CSS的三种使用方法
  13. 女性bmi计算器JAVA代码_简单的BMI计算器
  14. JS 案例 跳水比赛评分系统
  15. 计算机系统思维导图简单画法,思维导图简单画法
  16. linux内核led驱动开发,从Linux内核LED驱动来理解字符设备驱动开发流程
  17. 浅析JWT| JWT是啥子,Java构建JWT
  18. CTP程序化交易入门系列之一:准备
  19. 【解决】Cloning into ‘xxx‘... remote: HTTP Basic: Access denied fatal:
  20. 环球时报评出“影响新中国的60位外国人”

热门文章

  1. 计算机科学的动物比喻,有关动物的比喻句
  2. 混合现实在医学领域的应用学习日志
  3. 从0到1搭建kubernetes集群
  4. python画立体爱心_Python画3D心形
  5. 保弘实业|打工族怎么投资理财
  6. cad和html5哪个好,最好用的5个CAD软件 你用的是哪款呢
  7. 江苏最新建筑施工塔式起重机(建筑特种作业)特种工(塔式起重机)机考题库真题及答案解析
  8. 极米H5值得入手吗?极米H5实际体验如何?画面对比实测
  9. mongodb实现一主两从一个仲裁者
  10. 算法为啥子那么难【转】