更新后, Win11 上编译 C++常用库被 Defender 报毒

345 天前
 Thymolblue

各位 V 友帮我看看是我中病毒了还是确实是误报

在今天更新完系统后,包括 opencv, zlib, eigen 在内的库均无法编译,全被 Defender 拦截了

下面是以我编译 zlib-1.3 为例

Environment

Library

Command

C:/Qt/Tools/CMake_64/bin/cmake.exe -G "MinGW Makefiles" -D CMAKE_C_COMPILER=gcc -D CMAKE_CXX_COMPILER=g++ -D CMAKE_C_FLAGS_DEBUG=-O3 -D CMAKE_C_FLAGS_RELEASE=-O3 -D CMAKE_CXX_FLAGS_DEBUG=-O3 -D CMAKE_CXX_FLAGS_RELEASE=-O3 -D CMAKE_BUILD_TYPE=Debug -D CMAKE_PREFIX_PATH="C:/Work/dep/MinGW11.2.0/Debug;${CMAKE_PREFIX_PATH}" -D CMAKE_INSTALL_PREFIX="C:/Work/dep/MinGW11.2.0/Debug/zlib-1.3" -B . -S ..
C:/Qt/Tools/CMake_64/bin/cmake.exe --build .
C:/Qt/Tools/CMake_64/bin/cmake.exe --install .

Generator

Variables

Windows Defender

CMake

-- The C compiler identification is GNU 11.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working C compiler: C:/Qt/Tools/mingw1120_64/bin/gcc.exe
-- Check for working C compiler: C:/Qt/Tools/mingw1120_64/bin/gcc.exe - works
-- Detecting C compile features
-- Detecting C compile features - done
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of off64_t
CMake Error at C:/Qt/Tools/CMake_64/share/cmake-3.24/Modules/CheckTypeSize.cmake:146 (try_compile):
  Cannot copy output executable

    'C:/Work/tmp/pack/zlib-1.3/build_zlib_1.3_MinGW11.2.0_Debug/CMakeFiles/CMakeTmp/cmTC_8af1e.exe'

  to destination specified by COPY_FILE:

    'C:/Work/tmp/pack/zlib-1.3/build_zlib_1.3_MinGW11.2.0_Debug/CMakeFiles/CheckTypeSize/OFF64_T.bin'

Call Stack (most recent call first):
  C:/Qt/Tools/CMake_64/share/cmake-3.24/Modules/CheckTypeSize.cmake:277 (__check_type_size_impl)
  CMakeLists.txt:40 (check_type_size)


-- Looking for fseeko
-- Looking for fseeko - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Configuring incomplete, errors occurred!
See also "C:/Work/tmp/pack/zlib-1.3/build_zlib_1.3_MinGW11.2.0_Debug/CMakeFiles/CMakeOutput.log".
See also "C:/Work/tmp/pack/zlib-1.3/build_zlib_1.3_MinGW11.2.0_Debug/CMakeFiles/CMakeError.log".
1836 次点击
所在节点    Windows
9 条回复
V28a19cc
345 天前
1. 建议综合多个杀软的结果来确定是否误报,具体操作是将报毒的文件上传到 [VirusTotal]( https://www.virustotal.com)
2. 建议禁用 Defender 以**大幅加快**编译速度,随便换个杀软性能都比 Defender 好很多
miaomiao888
345 天前
不确定你的情况
但最近 Defender 似乎更新了病毒库导致一些误报,反正我有个软件是突然收到误报反馈。
Defender 很恶心,加白除了添加排除路径,还得关实时保护,否则软件运行后照样扫内存强行删除。
同样建议换,这坨东西一点都不专业。
zed1018
345 天前
把工具包和源码路径加到排除的目录
j16ZgMV9cs6ZB23n
344 天前
MinGW 的不清楚,我用 msvc 编译的上传再下载就当病毒了,自己都觉得很惊奇。
Thymolblue
344 天前
@miaomiao888
@chilledheart
确实 defender 的报毒很迷,而且连操作时间都不给
sariya
344 天前
放排除列表吧,可能是一些动态生成 exe 的操作触发了误报
klosw
344 天前
为啥不把项目目录在 Defender 中排除呢
Thymolblue
344 天前
@klosw 被 defender 报毒是在 14 号更新后发生的,主要是不确定是否真的中毒了
Thymolblue
344 天前
来结一下题,就是微软的误报,把 CMake 更新到 3.27 之后就能成功编译了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1000517

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX