VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 464|回复: 10

visual studio 2017

[复制链接]
00_avatar_middle
最佳答案
2 
在线会员 发表于 2021-5-27 09:32:19 | 显示全部楼层 |阅读模式
项目在release(x86)下可以正常生成和运行,但是在debug(x86)下却没办法生成,报错如图,环境路径和包含的库配置都是一样的。
296a5830e9884f6425193499b9de677.png




上一篇:关于非常量引用的初始值必须为左值的修改问题
下一篇:无法将参数 1 从“const char [12]”转换为“char *”
51_avatar_middle
最佳答案
88 
online_admins 发表于 2021-5-27 10:56:43 | 显示全部楼层
DbgLogInfo 这个函数是你自己代码中的,还是你自己工程的库中的,还是VS自带的函数?
可能是你的库做了限制,只允许在 release模式下使用
00_avatar_middle
最佳答案
2 
ico_lz  楼主| 发表于 2021-5-27 11:42:13 | 显示全部楼层
本帖最后由 etwau 于 2021-5-27 11:45 编辑
Syc 发表于 2021-5-27 10:56
DbgLogInfo 这个函数是你自己代码中的,还是你自己工程的库中的,还是VS自带的函数?
可能是你的库做了限 ...


没有找到DbgLogInfo这个函数,只找到了DbgLog这个函数。
你说的库的限制是指项目属性页中的配置属性->VC++ 目录中的排除目录吗,如果是这个的话,则两个的配置是一样的
87_avatar_middle
最佳答案
15 
在线会员 发表于 2021-5-27 14:58:41 | 显示全部楼层
十有八九,你的这个函数写在
#ifdef _DEBUG
void Cxx::AssertValid() const
{
        Cxx::AssertValid();
}

void Cxx::Dump(CDumpContext& dc) const
{
        Cxx::Dump(dc);
}
#endif //_DEBUG

这两个宏之间了,它就会造成在Release的模式下正常生成而在Debug模式下会出现一个未解决的外部符号这个错误!我自己也经常遇到,这是由类向导或者非手工写入造成的!
00_avatar_middle
最佳答案
2 
ico_lz  楼主| 发表于 2021-5-27 15:52:09 | 显示全部楼层
cqzj70 发表于 2021-5-27 14:58
十有八九,你的这个函数写在
#ifdef _DEBUG
void Cxx::AssertValid() const

我去查了项目中所有_DEBUG中的宏定义,没有包含任何的函数
87_avatar_middle
最佳答案
15 
在线会员 发表于 2021-5-27 16:20:16 | 显示全部楼层
etwau 发表于 2021-5-27 15:52
我去查了项目中所有_DEBUG中的宏定义,没有包含任何的函数


不是宏定义,是包含在
#ifdef _DEBUG

#endif //_DEBUG
这两个宏之间了
00_avatar_middle
最佳答案
2 
ico_lz  楼主| 发表于 2021-5-27 16:35:05 | 显示全部楼层
cqzj70 发表于 2021-5-27 16:20
不是宏定义,是包含在
#ifdef _DEBUG

我检索了整个项目的_DEBUG,没有发现有函数包含在
#ifdef _DEBUG

#endif //_DEBUG
之间,我有个疑问,这个不是叫宏定义吗?
87_avatar_middle
最佳答案
15 
在线会员 发表于 2021-5-27 18:22:22 | 显示全部楼层
etwau 发表于 2021-5-27 16:35
我检索了整个项目的_DEBUG,没有发现有函数包含在
#ifdef _DEBUG


严格来说不是,是条件编译指令!
31_avatar_middle
最佳答案
49 
在线会员 发表于 2021-5-27 20:11:35 | 显示全部楼层
本帖最后由 cpp2019 于 2021-5-27 20:14 编辑

这个问题的原因可能是你切换过平台工具集(SDK版本),从高版本切换到低版本,然后再切换回高版本就会出现这个问题,我经常写一些老系统上的工具,由于在Win10编写,写完要弄到XP那些个老系统上测试,所以经常会切换版本,也就经常碰到这个问题。
visual studio 2017
00_avatar_middle
最佳答案
2 
ico_lz  楼主| 发表于 2021-5-27 20:39:21 | 显示全部楼层
cpp2019 发表于 2021-5-27 20:11
这个问题的原因可能是你切换过平台工具集(SDK版本),从高版本切换到低版本,然后再切换回高版本就会出现这 ...

我尝试了一下更换低版本的工具集,然后直接崩掉
00_avatar_middle
最佳答案
2 
ico_lz  楼主| 发表于 2021-5-28 08:36:22 | 显示全部楼层
cqzj70 发表于 2021-5-27 18:22
严格来说不是,是条件编译指令!

长见识了,这方面我确实不太了解,谢谢
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-10-23 16:19

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表