C语言调试过程中duplicate symbol错误分析
2018-06-18 04:14:45来源:未知 阅读 ()
说明:在我们调试C语言的过程中,经常会遇到duplicate symbol错误(在Mac平台下利用Xcode集成开发环境)。如下图:
一.简单分析一下C语言程序的开发步骤。
由上图我们可以看出C语言由编写源程序->编译->链接->运行几个步骤进行。
编写源程序:
C语言的源文件的扩展名为.c,源文件以ASCII的形式存储,不能直接被计算机执行。
编译:
1.把C语言源程序翻译成计算机可以识别的二进制代码,由编译器完成。
2.编译的同时进行语法检查,如果发现语法错误,则编译失败。如果编译成功,生成扩展名为“.obj”的目标文件。
3.每个源文件是单独进行编译的,如果一个项目中有多个.c源文件,则会生成多个.obj目标文件。
链接:
1.将所有有关联的obj目标文件,及系统提供的C库函数等组合在一起生成可执行文件。
2.生成的可执行文件的文件名与源程序文件名形同,计算机可以直接执行。
运行:
双击即可运行生成的可执行文件。
二.错误原因
源文件中引入的另一个源文件。
例如:在main.c中#include<test.c>
三.错误分析
由于编译的过程是对每个源文件单独进行编译的,如果单个源文件没有语法错误,编译就会通过。而链接过程是将所有有关联的obj目
文件及系统的库函数组合在一起。而include预处理指令类似与代码的拷贝,并且C语言默认情况下不允许重复定义函数,因此引入的源文件
中函数在链接时会报重复定义的错误。也就是我们看到的duplicate symbol错误。
小伙伴们,以后要注意了,在C语言开发中,不允许在源文件中引入其他的源文件,只可以引入头文件呦!
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:USB传输协议。——Arvin
- 关于各种不同开发语言之间数据加密方法(DES,RSA等)的互通的 2020-06-07
- C语言程序结构 2020-05-31
- 每日干货丨C++语言主流开发工具推荐! 2020-04-28
- WDK驱动调试问题点滴 2020-04-21
- C语言实现经典游戏——扫雷! 2020-04-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash