文档章节

【原创】使用 VS 编译遇到的一些 error 和 warning(持续更新)

摩云飞
 摩云飞
发布于 2012/11/16 20:24
字数 497
阅读 1389
收藏 1
点赞 0
评论 0


error C2143

error C2143: 语法错误 : 缺少“;”(在“类型”的前面)

原因:以“编译为 C 代码(/TC)”方式编译时,没有把变量定义在函数开始的位置。

error LNK2019

error LNK2019: 无法解析的外部符号 _abc,该符号在函数 _xyz 中被引用

原因:
当前源文件 xyz 中使用了外部符号 abc ,但是无法找到该符号,原因是没有包含对应的 .lib 库文件。
另外可能的原因:

  • 包含了 .lib 库但是没有将相应的符号 abc 导出
  • 还有一种情况是由于头文件和库文件不匹配造成

【error C2733】

error C2733: second C linkage of overloaded function 'wmemchr' not allowed

原因:针对处于 C++ 模式下的 VC6 以及其它 VS 版本,当进行 ARM 相关编译时应该对要使用的 <wchar.h> 头文件进行 'extern "C++" {}' 处理。

#ifdef __cplusplus
extern "C" {
#endif

#  include <wchar.h>

#ifdef __cplusplus
}
#endif

【error C2440】

error C2440: “=”: 无法从“void *”转换为“void **”

原因:一般会在调用 malloc 函数后将其返回值赋值给其他变量时出现,值得注意的是,出现该错误的前提是按照“编译为 C++ 代码 (/TP)”进行编译,如果按照“编译为 C 代码 (/TC)”进行编译则不会出现该错误。

【error C2054】

error C2054: 在“inline”之后应输入“(”
原因:这个错误出现在以“ 编译为 C 代码 (/TC) ”进行编译时,内联函数使用 inline 来标示,而没有使用 __inline 标识。可以在 以“ 编译为 C 代码 (/TC) ”进行编译时,增加宏定义 #define inline __inline 。


【Warning C4251】

warning C4251: 'AClass::m_variable' : class 'SomeTemplate<T>' needs
to have dll-interface to be used by clients of class 'AClass'

原因: 牛逼文章1 文章2


Warning C4996

warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup.
warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.

原因:详细原因需要参考MSDN上的官方说明


© 著作权归作者所有

共有 人打赏支持
摩云飞
粉丝 364
博文 352
码字总数 952690
作品 0
徐汇
程序员
mfc程序遇到的一些错误

1.Error 1 error C2440: 'staticcast' : cannot convert from 'void (thiscall CMainFrame:: )(NMTOOLBARA ,LRESULT )' to 'void (_thiscall CCmdTarget:: )(NMHDR *,LRESULT *)' d:/作业项目......

晨曦之光 ⋅ 2012/03/09 ⋅ 0

解决方案warning C4996: 'fopen': This function or va...

Visual Studio 2005 移植 - WINVER,warning C4996, error LINK1104 一、WINVER Compile result: WINVER not defined. Defaulting to 0x0502 (Windows Server 2003) windows server 2003 win......

我是一只鱼 ⋅ 2011/12/01 ⋅ 2

CEF Windows环境搭建之源码编译

Chromium Embedded Framework 背景 最近由于项目需要用到内嵌浏览器,IE内核太依赖于操作系统,对H5的支持也不太好。CEF是基于chromium 项目的内嵌浏览器开源框架,已经应用到了很多产品中,...

AlgoPeek ⋅ 2017/11/01 ⋅ 0

深入研究 VS Code for Golang

前提 Visual Studio Code (以下简称: VS Code) 是微软的跨平台的开源IDE,目前已经进入了 1.0 的正式版本. 由于功能强大,预设就能 debug python, node.js 和 java script .玩了一两天,将...

chapin ⋅ 2016/07/30 ⋅ 0

在VS2013中使用boost库遇到的问题及解决

最近的项目需要集成一个使用了boost库的开源库。原本应该是比较简单的工作,因为使用的是VS2013,而boost库是最新下载的1.60.0版本(注:写这篇文章时1.61.0刚好release),结果还是费了一点工...

SunLightJuly ⋅ 2016/05/17 ⋅ 0

Error-prone,Google出品的Java和Android Bug分析利器

是什么 静态的Java和Android bug分析利器 由Google出品 由error-prone接管compiler,在代码编译时进行检查,并抛出错误中断执行 在抛出错误的同时给出具体的原因和相应方案 error-prone gith...

技术小黑屋 ⋅ 2017/04/09 ⋅ 0

升级Xcode7后遇到的一些问题

1、首先是遇到的一个crash问题,是因为新浪微博SDK引起的(我们用到了shareSDK来做分享),更新shareSDK即可。 2、网络请求失败:App Transport Security has blocked a cleartext HTTP (http...

哎哟喂_白板 ⋅ 2015/12/09 ⋅ 0

windows 10 下 Caffe + Matlab 部署

在 windows 10 下部署 Caffe 花了很多时间才调通,记录下 key 节点以便后续查询: 一、安装软件: 1、安装 Microsoft Virtual Studio 2013 / Matlab 2015a / CUDA 7.5: 需要注意的是, VS20...

JungleKing ⋅ 2016/12/27 ⋅ 0

android 混淆 去除第三方jar

编译与反编译,一对相辅相成的矛盾。反编译有时候会和不光彩的事情联系在一起,以致于编译者常常费劲心思,加大反编译的难度,比如采用混淆代码等方式。ProGuard正是这么一个工具:   The...

AlexZhuang ⋅ 2012/05/17 ⋅ 0

vs2010新建MFC工程直接编译失败

1>------ Rebuild All started: Project: wqwq, Configuration: Debug Win32 ------ 1>Build started 2014/4/13 13:13:22. 1>_PrepareForClean: 1> Deleting file "Debugwqwq.lastbuildstate......

MEngm ⋅ 2014/04/13 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

聊聊spring cloud gateway的LoadBalancerClientFilter

序 本文主要研究一下spring cloud gateway的LoadBalancerClientFilter GatewayLoadBalancerClientAutoConfiguration spring-cloud-gateway-core-2.0.0.RELEASE-sources.jar!/org/springfram......

go4it ⋅ 29分钟前 ⋅ 0

详解:Nginx反代实现Kibana登录认证功能

Kibana 5.5 版后,已不支持认证功能,也就是说,直接打开页面就能管理,想想都不安全,不过官方提供了 X-Pack 认证,但有时间限制。毕竟X-Pack是商业版。 下面我将操作如何使用Nginx反向代理...

问题终结者 ⋅ 35分钟前 ⋅ 0

002、nginx配置虚拟主机

一、nginx配置虚拟主机可分为三种方式,分别为: 1、基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2、基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站...

北岩 ⋅ 38分钟前 ⋅ 0

shell脚本之死循环写法

最近在学习写shell脚本,在练习if while等流程控制时,突然它们的死循环写法是怎么样的?经过百度与亲测记录如下: for死循环 #! /bin/bashfor ((;;));do date sleep 1d...

hensemlee ⋅ 41分钟前 ⋅ 0

苹果的ARKit2.0有多可怕,看了就知道

序言 ARKit主要由三部分组成: 跟踪(Tracking) 跟踪是ARKit的核心组件之一,其提供了设备在物理世界中的位置与方向信息,并对物体进行跟踪,如人脸。 2.场景理解(Scene Understanding) 场...

_小迷糊 ⋅ 42分钟前 ⋅ 0

5.1 vim介绍 5.2 vim移动光标 5.3 ,5.4vim一般模式下移动光标,复制粘贴

vim命令 vim是vi的一个升级版;vim可以显示文字的颜色 安装vim这一个包vim-enhanced 如果不知道安装包,可以使用 命令下面命令来查看vim命令是那个包安装的。 [root@linux-128 ~]# yum prov...

Linux_老吴 ⋅ 45分钟前 ⋅ 0

vim一般模式

vim 是什么 vim是什么 ? 在之前接触Linux,编辑网卡配置文件的时候我们用过了vi ,vim简单说就是vi的升级版,它跟vi一样是Linux系统中的一个文本编辑工具。 如果系统中没有vim ,需要安装一...

李超小牛子 ⋅ 53分钟前 ⋅ 0

docker实战

构建企业级Docker虚拟化平台实战 重点剖析虚拟化和云计算概念; 分析Docker虚拟化的概念和原理; 从0开始实战Docker虚拟化平台; 基于Docker构建Nginx WEB服务器和CentOS虚拟机; 基于开源监...

寰宇01 ⋅ 今天 ⋅ 0

vim介绍、vim颜色显示和移动光标、vim一般模式下移动光标、一般模式下复制粘贴剪切

VIM Vim 是 UNIX 文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff),语法高亮,全面的帮助系统,本地脚本(Vimscript),和便于选择的...

蛋黄Yolks ⋅ 今天 ⋅ 0

springboot+mockito测试controller层遇到的问题

使用MockitoJUnitRunner测试的一个例子,原来报错无法找到bean, 类似的异常如下:createBeanError..... 原因:是因为@Runwith使用了SpringRunner,应该修改为MockitoJUnitRunner 代码如下: ...

writeademo ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部