我正在运行一个非常简单的 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/