使用 cl 编译的代码在第一次运行时挂起太久[关闭]

Posted

技术标签:

【中文标题】使用 cl 编译的代码在第一次运行时挂起太久[关闭]【英文标题】:Code compiled with cl hangs too long on the first run [closed] 【发布时间】:2019-06-27 20:19:08 【问题描述】:

我用 cl 编译我的 C++ 代码。然后当我尝试运行它时,它会挂起约 10 秒,然后运行。但这只会发生在编译过程后的第一次运行中。随后的调用运行没有任何问题。但是如果我再次编译代码,那么第一次运行仍然会挂起。

我安装了 VS 2017 并调用“VC\Auxiliary\Build\vcvarsall.bat”来使用 cl。我正在使用命令行来编译和运行我的代码。这就是所有问题发生的地方。如果我在 Visual Studio 中编码和编译,则不会出现停滞问题。只有当我使用命令行并且我不知道为什么时才会发生这种情况。

#include <stdio.h>

int main()

    printf("Testing\n");
    return 0;

编译代码

cl main.cpp

【问题讨论】:

请展示你是如何运行你的代码的。 您是否有任何防病毒软件可以验证文件是否可以安全运行? 我只是调用main.exe 来运行程序。我有 Avira 作为防病毒软件。但我不确定这是否是问题的根源。因为我用了很多年,这个问题已经存在了几个月。 在 Stack Overflow 上与人交流的提示:您需要“ping”个人才能在 cmets 中回答他们。否则他们不会收到通知。您可以这样做 - @YalcinOzveren - 通过使用带有屏幕名称的 @ 字符。要向原始问题添加缺失的信息,请使用edit 链接 - cmets 往往会被删除... 由于延迟很明显,启动像 Process Explorer 这样的监视器,然后重建并运行程序,看看监视器是否可以帮助发现坏人。 【参考方案1】:

问题似乎与防病毒软件有关。我卸载了 Avira,问题就消失了。现在我正在使用 Avast。它也会挂起程序,但只挂起大约 1 秒钟。所以这没什么大不了的。

【讨论】:

如果您在“工作”目录中完成所有或大部分开发工作,您可能会将该目录设置为被 AV 扫描仪忽略。请勿对公共目录执行此操作,例如 Windows 中您帐户的 Documents 文件夹,或者如果您担心有针对性的攻击。 @user4581301 这就是我所做的。我排除了包含来自 AV 扫描仪的所有代码的文件夹,一切都很好。

以上是关于使用 cl 编译的代码在第一次运行时挂起太久[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Python for Windows 在调用 MinGW-w64 编译库的函数时挂起

VS2013 在编译时挂起

避免编译Oracle包时挂起

NamedPipeServerStream.EndWaitForConnection() 只是在使用时挂起

npm 在安装后/解锁时挂起

我可以在 userControl 中使用线程来防止应用程序运行时挂起吗?