C++:配置项目属性解决的各种error问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dashumak/article/details/83385595

一、提示C系列错位

1. error C1010:在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include “stdafx.h””?

解决方法: 上述问题定位在MemDB.c,在解决方案管理器中查找"MemDB.c",然后右键属性->常规->C/C++->预编译头->“预编译头”选择“不使用预编译头”

2. error C2664:不能讲参数1从“CString”转化为“const char*”

**问题原因:**从VC6.0移植到VS2010一般会出现这个问题,就是说VS对字符集的要求更严格
解决方法::进入项目-> 属性->配置属性->常规->“项目默认值”中的“字符集”选择“使用多字节字符集”


二、提示D系列错误

1. error D8016:“/ZI”和“/Gy-”命令行选项不兼容”问题

解决方法: 进入项目-> 属性->C/C++->常规->调试信息格式->选择程序数据库(/Zi)


三、提示H系列错误

1. *.hpj HC5011:Error Cannot open the file “E:\VC++6.0\VC98\MFC\include\afxhelp.hm

**问题原因:**代码拷贝到其他电脑会出现这种问题,因为是help文件的路径不对
解决方法:

  • 首先找到项目代码中的*.hpj 文件(如果直接找不到可以下一个Everything)
  • 双击进入,找到[MAP] (一般在最下边)。双击修改对应的连接
    在这里插入图片描述
    将其修改为本机电脑安装VC6.0的路径下的.hm文件,如我的是:
    在这里插入图片描述

四、提示M系列错误

1. error MSB4018: "VCMessage"任务意外失败

问题原因: 双击错误可以定位到一行代码中,说输出与链接的文件名不一样。打开工程配置检查一下,果然,后者应该改成 $(OutDir)SysData.exe
在这里插入图片描述
在这里插入图片描述


五、提示L系列错误

1. error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

解决方法: 把“D:\VS2010\VC\bin\cvtres.exe”删除即可。路径是VS2010的安装路径。

2. error LNK2001:无法解析的外部符号

**问题原因:**导致出现2001问题的愿意有很多,解决方法也不一样。这里只解决Debug版可以通过而Release不能通过的问题。
解决方法: 进入项目-> 属性->链接器->系统->“子系统”“/subsystem:console”改成“/subsystem:windows” .

3. error LNK2005:@已经在@.obj中定义

问题原因:(1)没有预编译头头文件(2)头文件重复包含
解决方法:(1)进入项目-> 属性->c/c++->“预编译头”选择“创建/使用编译头”(2)在头文件里加入防止重复包含的宏

4. error LNK2019:无法解析的外部符号 __imp__printf,该符号在函数 @(@) 中被引用

解决方法: 进入项目-> 属性->链接器->输入->在 “附加依赖项"中加入"legacy_stdio_definitions.lib” .

5. error LNK2026:模块对于SAFESH映像是不安全的

解决方法: 进入项目-> 属性->链接器->高级->将*“映像具有高级异常处理程序"改成"否”*


六、提示Warning警告

1. warning C4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

解决方法: 进入项目-> 属性->链接器->输入->*“忽略特定库”填入"LIBCMT"

2. warning C4189: 默认库“msvcrt.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB

解决方法: 进入项目-> 属性->链接器->输入->*“忽略特定库”填入"msvcrt.lib"

猜你喜欢

转载自blog.csdn.net/dashumak/article/details/83385595