VS201X_编译错误总结
oneboyishappy
这个作者很懒,什么都没留下…
展开
-
VS release版为什么没有生成lib库问题解决方案
在debug里C/C++-->预处理器加了导出符号,而在release忘记加了,导致 __declspec( dllexport )没有生效,没有导出函数,就没有导出库.lib,加上问题修复!原创 2021-06-28 22:06:09 · 936 阅读 · 2 评论 -
“当前不会命中断点。源代码与原始版本不同。”VS断点失败问题处理
VS201X中出现“当前不会命中断点。源代码与原始版本不同。”,主要是由于当前dll动态库不是当前代码编译出来的。有一种情况要特别注意,如:a.dll依赖于b.lib,而b.lib同时存在于路径1和路径2,“附加库目录中”同时配置了路径1和路径2,且路径1顺序在路径2前面。如果此时修改了b.lib的源代码,编译后新的b.lib出现在路径2中,而路径1中始终是旧的b.lib,由于a.dll是否要重新编译,一方面取决于自身代码a库的改动,另一方面取决于其依赖库b.lib是否更改过。本例中,只修改了b原创 2021-04-06 22:41:51 · 2425 阅读 · 0 评论 -
vs2015 按F5 程序不编译
vs2015 按F5 程序不编译,原因可能是:配置管理器---项目所对应的生成没有勾选!原创 2020-12-11 19:37:50 · 584 阅读 · 0 评论 -
注册自己的log函数,拦截出错时候的错误信息
编程时,若要知道自己的错误所在,可以注册自己的log函数,如下:#include extern "C" static void av_log_callback(void* ptr, int level, const char* fmt, va_list vl) { #ifdef _DEBUG static FILE *fp = NULL;原创 2012-06-16 10:46:56 · 3445 阅读 · 0 评论 -
broken ffmpeg default settings detected" and "use an encoding preset (vpre)"
在编码H264码流时,遇到这样的错误:broken ffmpeg default settings detecteduse an encoding preset (vpre)后来网上百度了原因,才知道,在x264 source file encoder/encoder.c 中:/* Detect default ffmpeg settings and terminate with原创 2012-06-20 16:04:26 · 7401 阅读 · 1 评论 -
BSCMAKE: error BK1506 : cannot open file '.\Debug\Client_DM36xDlg.sbr': No such file or directory
执行 cl.exe 时出错.Creating browse info file...BSCMAKE: error BK1506 : cannot open file '.\Debug\Client_DM36xDlg.sbr': No such file or directory 解决方法:将Debug删掉,重新编译,OK!原创 2012-07-26 17:01:17 · 5736 阅读 · 3 评论 -
error C2018: unknown character '0xa1'
主要是由于从网上拷贝的VC代码不识别,需要自己重新输入一下。原创 2012-08-27 14:45:24 · 743 阅读 · 0 评论 -
“当前不会命中断点 还没有为该文档加载任何符号”解决方法
基本上出现这种错误就是因为你实际执行时加载的程序集,对应的pdb(调用用的文件)没有加载进来,所以断点不会停下来。我遇到的错误是因为把程序数据库文件名错误的写成了$(IntDir)$(TargetName).pdb(如下图),导致其错误的覆盖了项目dll对应的pdb文件,进行不能调试,应使其改成$(IntDir)vc$(PlatformToolsetVersion).pdb原创 2017-03-02 10:08:41 · 3113 阅读 · 0 评论 -
VS could not open file
“工作目录”属性作用是程序运行后唯一识别的默认目录,是程序运行过程中默认读取的目录,代码中用GetCurrentDirectory之类的函数获取,工作后只认识这个目录$(ProjectDir)项目的目录(定义形式:驱动器 + 路径)$(TargetDir)生成的主输出文件的目录(定义形式:驱动器 + 路径)“工作目录”设置成$(ProjectDir) ,则程序运行目录是项目.vcxproj所在目录...原创 2018-07-06 14:46:14 · 2228 阅读 · 0 评论 -
C2470 “final”: 看起来像函数定义,但没有参数列表;跳过明显的函数体
原因:是由于exe项目依赖的lib库 VS工程编译平台不一样,如lib采用是Visual Studio 2015 (v140)编译,而exe项目采用Visual Studio 2010 (v100)编译解决:统一VS工程编译平台就行...原创 2019-06-21 21:06:28 · 1050 阅读 · 0 评论 -
C++调用类对象方法时,不允许指针指向不完整类型
这可能是因为定义类的时候,将定义类放在命名空间namespace里面了,导致调用该类对象方法时出错。如下:namespace AA {class BB;class CC{public:private:BB m_bb;};}应将class BB定义放在namespace AA 的外面。...原创 2019-07-04 15:10:34 · 2439 阅读 · 0 评论 -
error C2597: illegal reference to data member xxxx in a static member function
解决方法:这个错误是因为你尝试在static成员函数中访问非static成员,这肯定不行的,在static函数中没有this指针,你怎么能访问到非static成员变量呢?所以,你必须想办法传递给这个函数一个要访问对象的指针,通过那个指针来访问非static成员函数。原创 2012-06-11 09:59:38 · 13460 阅读 · 2 评论 -
error C2371: 'int8_t' : redefinition; different basic types;see declaration of 'int8_t'
同时使用ffmpeg库和SDL库,数据类型使用出现冲突:编译出错:d:\program files\microsoft visual studio\vc98\include\sdl\sdl_config_win32.h(36) : error C2371: 'int8_t' : redefinition; different basic types e:\重要的版本和文档原创 2012-05-19 21:30:59 · 9534 阅读 · 0 评论 -
cannot convert from 'unsigned char [3000]' to 'char *'
#include int main(void) { int nRead=0; FILE *fp_in = NULL; FILE *fp_out = NULL; char *ptr=NULL; unsigned char DataBuffer[3000] = {0}; ptr=DataBuffer; fp_in=fopen("video-H原创 2012-05-15 11:07:47 · 5314 阅读 · 0 评论 -
fatal error C1083: Cannot open include file: 'avformat.h': No such file or directory
编译中出现:fatal error C1083: Cannot open include file: 'avformat.h': No such file or directory 由于'avformat.h'属于fffmpeg库,所以必须在Tools->Options->Directories->Include files下导入fffmpeg->Include原创 2011-10-12 15:34:17 · 4047 阅读 · 0 评论 -
error C2146: syntax error : missing ';' before identifier 'HSEMAPHORE'
error C2146: syntax error : missing ';' before identifier 'HSEMAPHORE' BSCMAKE: error BK1506 : cannot open file '.\Debug\Rtsp.sbr': No such file or directory执行 bscmake.exe 时出错. 错误原因:没导入相应的库函原创 2012-02-20 15:03:44 · 4051 阅读 · 0 评论 -
error C2011: 'CDecoder' : 'class' type redefinition
这是由于类CDecoder的头文件被多个文件包含,导致预编译此头文件多次,解决方法: #ifndef _CDecoder_ #define _CDecoder_ class CDecoder { ......... }; #endif原创 2011-10-16 17:12:38 · 620 阅读 · 1 评论 -
error C2276: '&' : illegal operation on bound member function expression
编译代码时,出现 error C2276: '&' : illegal operation on bound member function expression,后来上网查了下,才知道是相应的头文件中函数声明,没加static,声明为静态函数后则ok了。。。。原创 2011-09-26 09:52:34 · 4482 阅读 · 1 评论 -
Rtsp.obj : error LNK2001: unresolved external symbol __imp__socket@12
该错误原因:没加载 ws2_32.lib库函数 工程---->设置----->连接 中的 对象/库模块 加入 ws2_32.lib就OK了原创 2012-02-20 10:57:16 · 778 阅读 · 0 评论 -
LINK : fatal error LNK1168: cannot open ../XTEDVR/Debug/test.exe for writing
LINK : fatal error LNK1168: cannot open ../XTEDVR/Debug/test.exe for writing 解决方法:打开任务管理器,将test.exe进程杀掉,然后重新编译链接,就可以了。(从o929778452o的博客中学到的)原创 2011-10-12 15:35:44 · 1360 阅读 · 0 评论 -
fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
提示windows.h头文件重复包含 MFC工程自动包含了头文件windows.h 在你的MFC工程中 把所有的#include语句删除即可这一步还不够,因为想在main函数下使用MFC中的TRACE( ),就必须:打开project->settings->general->microsoft foundation classes->选use MFC in a static libra原创 2012-03-14 17:13:47 · 3941 阅读 · 0 评论 -
error LNK2001: unresolved external symbol __endthreadex
Linking...nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadexnafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadexDebug/cff.exe :原创 2012-03-14 18:30:43 · 778 阅读 · 0 评论 -
error LNK2001: unresolved external symbol "void __cdecl av_close_input_file(struct AVFormatContext *
编译出现这种原因是由于:dll中封装的是.c 文件,函数接口不对,所以必须:extern "C"{#include #include #include #include }原创 2012-05-30 10:41:31 · 4232 阅读 · 0 评论 -
d:\program files\microsoft visual studio\vc98\include\math.h(514) : error C2894: templates cannot be
出错:d:\program files\microsoft visual studio\vc98\include\math.h(514) : error C2894: templates cannot be declared to have 'C' linkage打开d:\program files\microsoft visual studio\vc98\include\math.h出错原创 2012-05-30 17:42:46 · 4806 阅读 · 1 评论 -
“0X????????”指令引用的“0x00000000”内存,该内存不能为“read”或“written”
一、应用程序没有检查内存分配失败程序需要一块内存用以储存数据时,就需要使用操作系统提供的「功能函数」来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是「动态内存分配」,内存地址也就是编程中的「光标」。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值「0」已不表示新启用的转载 2012-02-26 15:58:54 · 1728 阅读 · 0 评论