大家好,又见面了,我是你们的朋友全栈君。
- 前言,相信在使用C 编程的小伙伴都会遇到这样一个错误,在编译的时候出现Error,无法解析的外部符号,这是让人很费解的一件事情,因为不会报出哪一行出现了问题,以至于问题排查很难进行,所以为大家提供了相关解决思路,希望对大家有所帮助!
文章目录
-
- 问题一 无法解析的外部符号
- 问题二 error LNK1104:无法打开文件lib
- 问题三 debug不可以运行,release可以运行
-
问题一 无法解析的外部符号
[问题描述]
- 在编译中遇到,viaual studio无法解析的外部符号 该符号在外部函数中被引用
[问题处理]
代码语言:javascript复制 1. 分析问题,这个错误定义为一个:连接错误。
2. 根本原因是函数虽然申明了,但是没有定义函数的实现
3. 排查问题出现的几种情况:
可能一: 包含函数实现的cpp文件没有添加到项目中。
可能二: 生成的库文件没有链接到exe可执行文件中,排查项目中的链接库是否被添加到工程中
可能三: 函数的申明,与函数的定义有偏差
可能四:Extern了变量,但是变量未定义
问题二 error LNK1104:无法打开文件lib
[问题描述]
- 无法打开文件 ‘boost_filesystem-vc120-mt-1_56.lib’
[问题处理]
- 在项目属性中-》链接器-》常规-》附加库目录进行相关目录的设置,参考其他目录即可
问题三 debug不可以运行,release可以运行
[问题描述]
- 在使用visualstudio中出现debug不可以运行,release可以运行的状况。
[问题处理]
- 通过排查外部的链接库以及相关其他配置均没有问题,但是在编译生成文件时出现“LNK4098: 默认库“MSVCRT”与其他库的使用冲突”,通过右击工程 – 属性 ”配置属性 – 链接器 – 命令行” 添加: /NODEFAULTLIB:”libcmt.lib”该问题得到解决。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/153486.html原文链接:https://javaforall.cn