VisualStudio2019无法正常使用printf或std::cout(卡死)的解决办法

本文探讨了在VS2019中遇到程序卡死于printf的问题,揭示了'.vs'隐藏文件与调试bug的关系,分享了清理该文件夹并重新编译的解决方案。问题源于VS生成的额外跳转指令导致链接错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相信很多人碰到过这个问题,就是在使用vs2019时,即使是一个非常简单的程序,如,

#include <stdio.h>

int main( int argc, char* args[] ) {
    printf("Testing");
    return 0;
}

在 Debug模式(调试状态)下,也会出现程序卡死在printf的情况。

针对这种情况,网上有很多说法,例如,

visual c++ - Printf is not printing anything to output? C++ SDL - Stack Overflowhttps://stackoverflow.com/questions/11068565/printf-is-not-printing-anything-to-output-c-sdl这 里的办法有添加各种预定义,或者设置程序的属性为Console(链接--系统--SUBSYSEM:CONSOLE)等等。

然而查找一番后,发现这些貌似都不是问题的根本原因;

我的解决办法是这样的,

(1)找到解决方案所在的文件夹,你会发现里面有个名字叫做".vs"的隐藏文件;

(2)关闭你的VS2019,然后删除这个文件夹;

(3)然后再启动VS2019,重新编译调试

问题解决。

这个问题的根本原因,是因为项目在调试过程中,由于一些不知名的原因,vs2019为了兼容传统c语言和c++库,生成了一些不必要的跳转指令,也可能是为了调试之类的原因吧。这些指令使VS2019不能正确链接到相应的函数。这本身是VS2019的一个BUG,因为各种库之间的复杂关系,目前可能没有好办法可以回避。

本文结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值