c++ - 运行最简单的 C++ 程序时出现 AVG Access Denied 警告

标签 c++ g++ iostream antivirus

我正在运行一个非常简单的 C++ 程序:

#include <list>
#include <vector>

int main(int argc, char **args) {

}

我转到命令提示符并编译并运行:

g++ whatever.cpp
a.exe

通常这工作得很好。它编译得很好,但是当我运行它时,它说访问被拒绝并且 AVG 弹出告诉我检测到威胁 Trojan Horse Generic 17.CKZT。我尝试使用 Microsoft 编译器 (cl.exe) 再次编译,但运行正常。所以我回去,并补充说:

#include <iostream>

使用 g++ 编译并运行。这次效果很好。

那么谁能告诉我为什么 AVG 会将空的 main 方法报告为特洛伊木马,但如果包含 iostream header 则不会?

更新:

我在 main 方法中添加了一个 return 语句,现在我发现只有返回 0 时才会出现错误。任何其他返回值似乎都可以正常工作。

这是怎么回事?

最佳答案

You're not the first person to encounter false positives by antivirus software.

可能发生的情况是,防病毒启发式算法在您程序中存在的标准运行时库上出错,因为恶意软件也使用它们。当然,合法软件也使用它们!它没有在 iostream 上运行的事实可能意味着 iostream 在恶意软件编写者中不是很受欢迎。

关于c++ - 运行最简单的 C++ 程序时出现 AVG Access Denied 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3066192/

相关文章:

python - 如何在 LinuxOS 中从 python 脚本运行/停止 c 程序?

c++ - 实现自定义(字符串)流时的 Xcode 4.5.2 libc++ std::bad_cast

c++ - 连接汇编和 C 问题

c# - 使用 win32 DLL 部署 XBAP

c++ - C++程序的时空复杂性

c++ - 为什么 -Wfatal-errors 会关闭有关错误的注释,以及如何重新打开注释?

c++ - 附加进程时 boost 删除 managed_shared_memory

c++ - 使用 -O3 使用 g++ 编译时 C++ 程序中的段错误

c# - 将 iostream 输入代码从 C++ 移植到 C#

c++ - 在 C++ 中是否允许在 iostream 之后编写任何内容