- 3
- 0
- 约6.58千字
- 约 6页
- 2017-06-17 发布于湖北
- 举报
许多Visual C++的使用者都碰到过LNK2005:symbol already defined和LNK1169:one or more multiply defined symbols found这样的链接错误,而且通常是在使用第三方库时遇到的。对于这个问题,有的朋友可能不知其然,而有的朋友可能知其然却不知其所以然,那么本文就试图为大家彻底解开关于它的种种疑惑。大家都知道,从C/C++源程序到可执行文件要经历两个阶段:(1)编译器将源文件编译成汇编代码,然后由汇编器(assembler)翻译成机器指令 (再加上其它相关信息)后输出到一个个目标文件(object file,VC的编译器编译出的目标文件默认的后缀名是.obj)中;(2)链接器(linker)将一个个的目标文件(或许还会有若干程序库)链接在一起生成一个完整的可执行文件。编译器编译源文件时会把源文件的全局符号(global symbol)分成强(strong)和弱(weak)两类传给汇编器,而随后汇编器则将强弱信息编码并保存在目标文件的符号表中。那么何谓强弱呢?编译器认为函数与初始化了的全局变量都是强符号,而未初始化的全局变量则成了弱符号。比如有这么个源文件:
extern int errorno;int buf[2] = {1,2};int *p;int main(){return 0;}
您可能关注的文档
最近下载
- 2025年南京市城管协管人员招聘笔试备考题库及答案解析.docx VIP
- 监理实施细则(建筑工程).doc
- 2024年南京市六合区城管协管员招聘考试题库及答案.docx VIP
- 2025年四川对口升学 财经商贸类专业综合理论测试试卷 .pdf VIP
- 第1章 整式的乘除 单元测试卷-2024-2025学年七年级数学下册(含答案).pdf VIP
- 江苏省常州市前黄实验学校2025_2026学年九年级下学期3月新课结业考历史试卷(文字版,含答案).docx VIP
- 江苏常州市前黄实验学校2025-2026学年九年级下学期3月新课结业考数学试卷(含解析).docx VIP
- Unit 5 Farms and us Part B 第4课时 课件 2025-2026学年人教PEP版英语四年级下册.pptx VIP
- 黄河流域体育休闲旅游与文化产业的融合发展.docx VIP
- Unit 5 Farms and us (Period 6)课件2025-2026学年人教PEP版四年级下册英语.pptx VIP
原创力文档

文档评论(0)