文档章节

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

摩云飞
 摩云飞
发布于 2012/11/16 20:24
字数 497
阅读 1464
收藏 1


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上的官方说明


© 著作权归作者所有

共有 人打赏支持
摩云飞
粉丝 368
博文 534
码字总数 952694
作品 0
徐汇
程序员
深入研究 VS Code for Golang

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

chapin
2016/07/30
768
0
CEF Windows环境搭建之源码编译

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

AlgoPeek
2017/11/01
0
0
在VS2013中使用boost库遇到的问题及解决

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

SunLightJuly
2016/05/17
1K
0
升级Xcode7后遇到的一些问题

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

哎哟喂_白板
2015/12/09
449
0
Error-prone,Google出品的Java和Android Bug分析利器

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

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

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 鱼生不值得

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @瘟神灬念:分享新裤子的单曲《没有理想的人不伤心 (Remix版)》: 《没有理想的人不伤心 (Remix版)》- 新裤子 手机党少年们想听歌,请使劲儿戳...

小小编辑
53分钟前
67
7
arts-week10

Algorithm 905. Sort Array By Parity - LeetCode Review Who’s Afraid of the Big Bad Preloader? 一文读懂前端缓存 一个网络请求3个步骤:请求,处理,响应,而前端缓存主要在请求处响应这两步...

yysue
今天
5
0
00.编译OpenJDK-8u40的整个过程

前言 历经2天的折腾总算把OpenJDK给编译成功了,要说为啥搞这个,还得从面试说起,最近出去面试经常被问到JVM的相关东西,总感觉自己以前学的太浅薄,所以回来就打算深入学习,目标把《深入理...

凌晨一点
今天
6
1
python: 一些关于元组的碎碎念

初始化元组的时候,尤其是元组里面只有一个元素的时候,会出现一些很蛋疼的情况: def checkContentAndType(obj): print(obj) print(type(obj))if __name__=="__main__": tu...

Oh_really
昨天
7
2
jvm crash分析工具

介绍一款非常好用的jvm crash分析工具,当jvm挂掉时,会产生hs_err_pid.log。里面记录了jvm当时的运行状态以及错误信息,但是内容量比较庞大,不好分析。所以我们要借助工具来帮我们。 Cras...

xpbob
昨天
197
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部