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】相关推荐

  1. Visual Studio 常见问题及解决方案(持续更新)

    1. " sgen.exe "已退出,代码为 1 解决方案:选定web项目,右键选择"属性"-"生成",将"生成序列化程序集&qu ...

  2. 【VB.NET】基于Visual Studio编写VB.NET程序的常见问题的解答

    我编写完的项目被保存在什么地方了? 答:默认情况下,如果不更改项目的保存路径,项目都会被存放在"我的文档\Visual Studio 2010\Projects"路径下,如果更改过 ...

  3. Visual Studio Code Go 插件文档翻译

    此插件为 Go 语言在 VS Code 中开发提供了多种语言支持. 阅读版本变更日志了解此插件过去几个版本的更改内容. 1. 语言功能 (Language Features) 1.1 智能感知 (In ...

  4. Visual Entity 下载列表(最新版为 2.0.0 ,已支持Visual Studio 2013)

    常见问题: http://www.cnblogs.com/ansiboy/archive/2011/04/06/2006839.html 发展线路: 2.x 将支持的功能有: 1.增加重构功能.当修改 ...

  5. 在Visual Studio中使用命令行参数进行调试

    我正在Visual Studio中开发一个C ++命令行应用程序,需要使用命令行参数进行调试. 目前我只使用我需要的参数(如此program.exe -file.txt )运行生成的EXE文件,但这样 ...

  6. Visual Studio Code 配置指南

    Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器.在我看来它是「一款完美的编辑器」. 本文是有关 VS Code 的特性介绍与配置指 ...

  7. PaddleOCR——Visual Studio 2019 环境下C++推理部署 CMake 编译解决方案

    PaddleOCR--Visual Studio 2019 环境下C++推理部署 CMake 编译解决方案 官方文档 环境配置 Step1: 下载PaddlePaddle C++ 预测库 paddle ...

  8. Visual Studio 2017 新功能(下)

    调试和诊断 运行时单击 只需在调试运行到此行时单击代码行旁边的图标. 无需再设置临时断点,也不必再执行多个步骤来执行代码和在所需行停止. 现在,调试器下停在中断状态时,"运行时单击" ...

  9. Qt Creator和Visual Studio双环境开发技能攻略

    前言 刚接触Qt开发时,大多数同学的第一行Qt代码是在Qt Creator中写下的. 众所周知,Qt Creator是Qt官方提供的Qt集成开发环境1,提供了对Qt应用开发的全过程支持.也就是说,使用 ...

最新文章

  1. OpenCV基本的阈值操作
  2. 一个有趣的问题,讨论讨论
  3. Elasticsearch-日期类型
  4. 《Web Load Testing For Dummie》读书笔记
  5. CVPR 新规严禁审稿期间公开宣传论文,可发 arXiv,LeCun:疯了吧!
  6. java编码规范概述_Java 编码规范 (转)
  7. 面试之函数节流和函数防抖
  8. iphone目录结构
  9. 文化学刊杂志文化学刊杂志社文化学刊编辑部2022年第3期目录
  10. python如何设计一个排队系统
  11. QN-H618 遥控器复制再生仪(拷贝机)
  12. CSS文字自适应div宽度
  13. BUUCTF misc 专题(83)从娃娃抓起
  14. 算法导论------递归算法的时间复杂度求解
  15. 回家,一朵花开的时间
  16. python只读属性怎么设置_python 设置只读属性(property或者__setter__方法)
  17. 解决Mac无法关闭80端口,无法将hosts域名指向本地80端口
  18. vue项目跨域的问题(一个项目对接两个不同的域名、端口接口导致跨域,最好的办法是后端解决)
  19. 电子报表数据稽核实践-VLOOKUP函数的妙用
  20. GS1011无线模块的使用简介。

热门文章

  1. HQChart使用教程67 - 鼠标点击K线柱子监听事件
  2. 系统设计模板该怎么写
  3. 鸿蒙系统是谎言,鸿蒙系统可能是一个善意的谎言,任正非把余承东立的flag拆了...
  4. Day21-30 - Web前端概述
  5. 学习JSP——在虚拟机中建立一个JSP网页,通过Tomcat服务器发布,并通过虚拟机的宿主机浏览器访问虚拟机上所发布的JSP网页
  6. 小甲鱼Python3学习笔记之第二十八讲(仅记录学习)
  7. 重装系统(制作系统U盘、安装系统、U盘复原、win10、微PE)
  8. iOS11设置automaticallyAdjustsScrollViewInsets失效
  9. 将json数据格式转化成excel插件JsonExportExcel.js的使用demo
  10. 计算app用户的留存率