我正在尝试使用Visual Studio 2017构建ClamAV源代码,有关ClamAV git的指南说:
外部库依赖项:
ClamAV依靠少数第三方 库。在以前的ClamAV版本中,大多数是 复制粘贴到win32 / 3rdparty目录中,例外 是OpenSSL。
在ClamAV 0.102中,所有这些库现在都已 外部ClamAV,并且必须提前编译为DLL(或 zlib(静态库),并放置在%CLAM_DEPENDENCIES%(通常是 C:\ clam_dependencies)目录,因此ClamAV Visual Studio项目 文件可以找到它们。
要构建这些库中的每一个,我们建议使用贻贝。 Mussels是一个开源应用程序依赖项构建工具,可以使用原始库作者想要的构建工具来构建每种依赖项的正确版本。”
https://github.com/Cisco-Talos/clamav-devel/blob/dev/0.102/win32/README.md
但是贻贝在任何地方都没有。任何其他解决方案也将有所帮助,我也尝试手动添加依赖项,但错误仍然存在。
答案 0 :(得分:0)
在提出此问题时,Mussels工具尚未开源。此后,贻贝项目已经公开。
请参阅:https://github.com/Cisco-Talos/Mussels
要在Windows上使用Mussels构建ClamAV依赖项,您将需要以下工具:
贻贝依赖性:
构建ClamAV依赖项所需的构建工具:
安装贻贝:
pip install --user mussels
重要:在cmd.exe或Powershell中的空目录或小型目录树中运行以下命令。贻贝将递归索引您当前的工作目录以寻找食谱。如果您从大型目录树(例如主目录)中运行这些命令,则将花费很长时间。
mkdir clam_dependencies
cd clam_dependencies
更新贻贝食谱:
mussels update
msl up # (shorthand)
提示:如果mussels
或msl
命令不起作用,则您的%PATH%中可能没有Python 3脚本目录。如果您不希望将其添加到%PATH%,则仍然可以使用python -m mussels
执行Mussels,而不是使用msl
。例如:
python -m mussels up
启用对ClamAV食谱的信任,以便您可以构建ClamAV食谱:
msl cookbook trust clamav -y
列出可用的构建配方:
msl list
msl list -V # (verbose)
使用贻贝为当前架构构建ClamAV
进行构建的试运行。这将向您显示依赖关系链,并且如果您缺少任何必需的工具,可能会抱怨:
msl build clamav -v 0.102 --dry-run
构建ClamAV。可选的--install <directory>
选项用于安装到.\clamav
,而不是默认的%HOME%\.mussels\install\<target>\clamav
:
msl build clamav -v 0.102 --install clamav
或者,仅构建依赖关系(针对64位然后是32位目标体系结构)
构建ClamAV依赖项。可选的--install <directory>
选项用于将它们安装到.\x64
和.\x86
而不是默认的%HOME%\.mussels\install\<target>
:
msl build clamav_deps -v 0.102 --target x64 --install x64
msl build clamav_deps -v 0.102 --target x86 --install x86
将x86
目录重命名为Win32
,以便它与ClamAV的Visual Studio项目文件期望的名称匹配。
mv .\x86 .\Win32
创建一个名为CLAM_DEPENDENCIES
的环境变量,并将其值设置为clam_dependencies
目录的完整路径。例如:
setx CLAM_DEPENDENCIES C:\Users\gary\clam_dependencies
这时,您应该已经准备好使用Visual Studio项目文件在Windows上构建ClamAV。
希望对您有所帮助!如果您认为自己遇到了贻贝https://github.com/Cisco-Talos/Mussels/issues的错误,请提交GitHub上的问题;如果您认为发现ClamAV构建配方的问题,请提交给https://github.com/Cisco-Talos/clamav-mussels-cookbook/issues。
如果您要提问,自述文件中有一个Mussels Discord服务器。