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

【error C2143】

?


1

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

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

【error LNK2019】

?


1

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

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

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

【error C2733】

?


1

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

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

?


1

2

3

4

5

6

7

8

9

#ifdef __cplusplus

extern "C" {

#endif

 

#  include <wchar.h>

 

#ifdef __cplusplus

}

#endif

【error C2440】

?


1

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

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

【error C2054】

?


1

error C2054: 在“inline”之后应输入“(”

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

【Warning C4251】

?


1

2

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】

?


1

warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup.

?


1

warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.

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

时间: 2024-09-27 23:57:01

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

这些开源项目,你都知道吗?(持续更新中...)[原创]

原文 这些开源项目,你都知道吗?(持续更新中...)[原创] Json.NET  http://json.codeplex.com/ Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象.让你轻松实现.Net中所有类型(对象,基本数据类型等)和Json的转换.   Math.NET http://www.mathdotn

c语言-为什么下述程序在VC中可编译,在gcc中提示warning

问题描述 为什么下述程序在VC中可编译,在gcc中提示warning #include int main () { int a=3,b=4,c=5; float x=1.2,y=2.4,z=-3.6; long u=51274,n=128765; char c1='a'; char c2='b'; printf("a=%2d b=%2d c=%2dn",a,b,c); printf("x=%8f,y=%8f,z=%9fn",x,y,z); printf("

编译-很奇怪的“error C1083: 无法打开包括文件”!

问题描述 很奇怪的"error C1083: 无法打开包括文件"! 程序的事情真是无奇不有,昨天碰到一个问题,真是百思不得其解,编译时报告我所写的一个头文件的引用找不到,查了 配置属性->C/C++->常规->附加包含目录,是正常的,目录本来就加在里面了,更怪的是昨天碰到第一次,后来我在那个目录下建另一个头文件,然后将总是说找不到的头文件的内容copy过去,再引用到新的头文件,正常了,最后我干脆删掉总说找不到那个头文件,然后重命名新的头文件为原找不到文件的名称,也正常

gcc编译C程序出现”error conflicting types for function”编译错误的分析解决

在使用gcc编译C程序时,有时会碰到"error: conflicting types for 'function'"的编译错误.从字面意义上理解,是说函数的定义和声明不一致.在这篇文章里,我就对这个错误做个简单的分析(使用的gcc版本是4.9.0). (一)首先我们看一个函数的定义和声明不一致的例子: #include <stdio.h> int func(int a); int func(void) {     return 0; } int main(void) {

Centos编译Nginx错误configure: error: the HTTP rewrite module 解决办法

我们在编译Centos手工编译Nginx时候,会出现各种编译不通过的错误提示,一般情况下都是系统缺少组件造成的,我这里把平时遇到的错误提示都总结下: 一.错误提示./configure: error: the HTTP rewrite module requires the PCRE library 原因:PCRE组件没有安装 解决办法:安装pcre-devel yum -y install pcre-devel openssl openssl-devel 或者手工编译安装PCRE组件 cd /

解决php编译中遇到各种error办法

1) Configure: error: xml2-config not found. Please check your libxml2 installation.   Solutions :   Quote:       # yum install libxml2 libxml2-devel       2) Checking for pkg-config- /usr/bin/pkg-config configure: error: Cannot find OpenSSL's <evp.h>

idea编译工程时出现Error:java: 无效的目标发行版: 1.8

见图,从上述可以看出工程用的jdk1.7,而idea编译时采用的是1.8版本(应该idea新版本内置的jre是1.8吧,默认编译采用1.8) 修改:如下图    http://blog.csdn.net/lyxtime/article/details/43372949    

Latex 编译错误: ! pdfTeX error (ext4): \pdfendlink ended up in different nesting level than \pd fstartlink. 解决方法

  最近写 AAAI 的文章,下载了其模板,但是蛋疼的是,总是提示错误,加上参考文献总是出错: 如下:   ! pdfTeX error (ext4): \pdfendlink ended up in different nesting level than \pd fstartlink. \AtBegShi@Output ...ipout \box \AtBeginShipoutBox \fi \fi l.119 \begin{equation}   ! ==> Fatal error occ

原创内容持续更新是提升网站权重的关键

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 很多人都知道质量高的原创内容能有效提升网站权重,这也是很多人想法设法进行原创或者伪原创的动力所在.但是,是不是网站只要有内容,只要发布一些原创内容,权重就一定会很高,就一定可以排到百度或者谷歌前面呢?答案是否定的,只有持续的,坚持不懈的定时撰写发布一些质量度比较高的原创内容到网站上,且持之以恒积累到一定时间后,排名才会慢慢上升.我们这里强调的