c - Windows Defender/安全性删除我的 “hello world”程序

标签 c windows gcc windows-defender

我正在尝试使用BearLibTerminal启动新的C项目,并使用gcc进行编译。
我可以编译世界,但是当我尝试启动时,Windows安全性给出了一个错误,内容为

"Operation did not complete successfully because the file contains a virus or potentially unwanted software."


编译后不久,无论我是否尝试运行,Windows都会删除可执行文件。
我当然可以禁用Windows安全实时保护,但这似乎是一个错误的解决方法。有谁知道可以进行哪些更改,以使Windows认为我的程序不是病毒?
这是代码:
#include "BearLibTerminal.h"

int main()
{
    terminal_open();
    
    // Printing text
    terminal_print(1, 1, "Hello, world!");
    terminal_refresh();
    
    // Wait until user close the window
    while (terminal_read() != TK_CLOSE);
    
    terminal_close();
}
这是makefile:
gcc -IC:/foo/include -LC:/foo/bin main.c -lBearLibTerminal -o test.exe
谢谢您的协助。
编辑:我似乎已经解决了问题。由于某种原因,MinGW的版本找到了here,这是我从mingw.org定向到的位置,导致我编译的东西被检测为病毒。我完全删除了MinGW,并下载了在SourceForge上找到的版本,而我不再遇到这个问题。我不知道编译器是否受到某种程度的损害,或者Windows Security是否只是在寻找特定版本的MinGW的功能,但我会注意到第一个编译器的“Hello World”版本比Windows的版本大4kb。版本是SourceForge编译器的版本,安装程序也同样大了大约6kb。

最佳答案

作为临时修复,您可以从Windows Defender中排除编译文件夹。

关于c - Windows Defender/安全性删除我的 “hello world”程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63079483/

相关文章:

c - 在同一个文件上交替使用 fwrite 和 fprintf

windows - 将我的 cloudService 内容从 Subscription1 复制到 Subscription2

C: 为什么 &(void *) 和 void** 不兼容?

c++ - 使用 Cmake 移动 .gcda 文件

windows - 删除文件夹和子文件夹中除最近的 3 个文件之外的所有文件

c - gcc 由于无法识别 __TIMESTAMP__ 和其他一些已定义的构建变量而生成编译时错误

c - C中的文件格式无法识别错误

c - 基于ebp的寻址和esp寻址之间的区别

c - 在 C 中多次释放分配的 char*

.net - 如何使用 'network service' 帐户启动控制台应用程序?