c++/visual studio常见问题【1】
1 LNK2001错误
参考Linker Tools Error LNK2001 | Microsoft Docs
无法解析的外部符号"符号"。说明程序中用到的某个符号,链接器无法在任何库或者obj对象文件中找到。
原因:
1)编码方面的原因
a) 变量名称不一致,比如一个文件里定义了var1,在另一个文件里却使用VAR1。
b) 在源代码中使用内联函数,此时该函数从文件外部无法访问。应该在头文件中定义内联函数。
c) 从c++程序中调用c函数,由于编译器对c/c++函数命名不同,所以出现错误。需要在c函数前加上exern "C"。
d) 类的静态成员未初始化。
2) 编译链接方面的原因
a) 未添加相应的lib文件;
b) release和debug模式不匹配。比如,在release模式下调用debug模式编译的库。
变量和函数需要定义(defined),即需要被分配了相应的存储空间或者有函数实现的代码段。此外,c++链接器在命名中会在变量或函数名上加上类型信息等,因此如果声明和定义的类型信息不匹配,会出现错误。
比如,项目中文件有c,c++,会出现Lnk2001错误。或者把c改名cpp.
c) include一个头文件,但没有添加相应的cpp文件。
d) 调用的函数名与定义函数名称不一致。比如main中用a(),但函数定义为A()。
2 error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”?
依次展开:配置属性》C/C++》预编译头,在右侧选择不使用预编译头
3 C3861 找不到标识符
1)没有包含命名空间
2)没有加类限定符
// C3861_a1.cpp
// Compile with: cl /EHsc /W4 C3861_a1.cpp C3861_a2.cpp
#include <iostream>
// Uncomment the following line to fix:
// int f(); // declaration makes external function visible
int main() {std::cout << f() << std::endl; // C3861
}// C3861_a2.cpp
int f() { // declared and defined herereturn 42;
}
如上两个文件。如果a1.cpp中没有int f()这一行,出现c3861错误。补充该声明,编译器自动将对应函数链接?
lnk2019,明明有这个函数的定义,却说找不到符号。有可能是inline函数位置不对,应该放在头文件中。
c++和fortran交叉编译外部符号无法解析:pow2o3,需要添加libmmd.lib,for_stop_core_quiet,需要添加libifcore。intel_sse2_strrchr,需要添加libirc。
c++/visual studio常见问题【1】相关推荐
- Visual Studio 常见问题及解决方案(持续更新)
1. " sgen.exe "已退出,代码为 1 解决方案:选定web项目,右键选择"属性"-"生成",将"生成序列化程序集&qu ...
- 【VB.NET】基于Visual Studio编写VB.NET程序的常见问题的解答
我编写完的项目被保存在什么地方了? 答:默认情况下,如果不更改项目的保存路径,项目都会被存放在"我的文档\Visual Studio 2010\Projects"路径下,如果更改过 ...
- Visual Studio Code Go 插件文档翻译
此插件为 Go 语言在 VS Code 中开发提供了多种语言支持. 阅读版本变更日志了解此插件过去几个版本的更改内容. 1. 语言功能 (Language Features) 1.1 智能感知 (In ...
- Visual Entity 下载列表(最新版为 2.0.0 ,已支持Visual Studio 2013)
常见问题: http://www.cnblogs.com/ansiboy/archive/2011/04/06/2006839.html 发展线路: 2.x 将支持的功能有: 1.增加重构功能.当修改 ...
- 在Visual Studio中使用命令行参数进行调试
我正在Visual Studio中开发一个C ++命令行应用程序,需要使用命令行参数进行调试. 目前我只使用我需要的参数(如此program.exe -file.txt )运行生成的EXE文件,但这样 ...
- Visual Studio Code 配置指南
Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器.在我看来它是「一款完美的编辑器」. 本文是有关 VS Code 的特性介绍与配置指 ...
- PaddleOCR——Visual Studio 2019 环境下C++推理部署 CMake 编译解决方案
PaddleOCR--Visual Studio 2019 环境下C++推理部署 CMake 编译解决方案 官方文档 环境配置 Step1: 下载PaddlePaddle C++ 预测库 paddle ...
- Visual Studio 2017 新功能(下)
调试和诊断 运行时单击 只需在调试运行到此行时单击代码行旁边的图标. 无需再设置临时断点,也不必再执行多个步骤来执行代码和在所需行停止. 现在,调试器下停在中断状态时,"运行时单击" ...
- Qt Creator和Visual Studio双环境开发技能攻略
前言 刚接触Qt开发时,大多数同学的第一行Qt代码是在Qt Creator中写下的. 众所周知,Qt Creator是Qt官方提供的Qt集成开发环境1,提供了对Qt应用开发的全过程支持.也就是说,使用 ...
最新文章
- OpenCV基本的阈值操作
- 一个有趣的问题,讨论讨论
- Elasticsearch-日期类型
- 《Web Load Testing For Dummie》读书笔记
- CVPR 新规严禁审稿期间公开宣传论文,可发 arXiv,LeCun:疯了吧!
- java编码规范概述_Java 编码规范 (转)
- 面试之函数节流和函数防抖
- iphone目录结构
- 文化学刊杂志文化学刊杂志社文化学刊编辑部2022年第3期目录
- python如何设计一个排队系统
- QN-H618 遥控器复制再生仪(拷贝机)
- CSS文字自适应div宽度
- BUUCTF misc 专题(83)从娃娃抓起
- 算法导论------递归算法的时间复杂度求解
- 回家,一朵花开的时间
- python只读属性怎么设置_python 设置只读属性(property或者__setter__方法)
- 解决Mac无法关闭80端口,无法将hosts域名指向本地80端口
- vue项目跨域的问题(一个项目对接两个不同的域名、端口接口导致跨域,最好的办法是后端解决)
- 电子报表数据稽核实践-VLOOKUP函数的妙用
- GS1011无线模块的使用简介。
热门文章
- HQChart使用教程67 - 鼠标点击K线柱子监听事件
- 系统设计模板该怎么写
- 鸿蒙系统是谎言,鸿蒙系统可能是一个善意的谎言,任正非把余承东立的flag拆了...
- Day21-30 - Web前端概述
- 学习JSP——在虚拟机中建立一个JSP网页,通过Tomcat服务器发布,并通过虚拟机的宿主机浏览器访问虚拟机上所发布的JSP网页
- 小甲鱼Python3学习笔记之第二十八讲(仅记录学习)
- 重装系统(制作系统U盘、安装系统、U盘复原、win10、微PE)
- iOS11设置automaticallyAdjustsScrollViewInsets失效
- 将json数据格式转化成excel插件JsonExportExcel.js的使用demo
- 计算app用户的留存率