无法建立外部库依赖性

时间:2019-10-01 07:41:13

标签: c++ compiler-errors dependencies

我正在尝试使用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

但是贻贝在任何地方都没有。任何其他解决方案也将有所帮助,我也尝试手动添加依赖项,但错误仍然存​​在。

Build Errors

1 个答案:

答案 0 :(得分:0)

在提出此问题时,Mussels工具尚未开源。此后,贻贝项目已经公开。

请参阅:https://github.com/Cisco-Talos/Mussels

要在Windows上使用Mussels构建ClamAV依赖项,您将需要以下工具:

贻贝依赖性:

  • Python 3.6 +
  • Git(已添加到您的PATH环境变量中)

构建ClamAV依赖项所需的构建工具:

  • Visual Studio 2017(2019可能有效,不确定)
  • CMake
  • ActivePerl(openssl必需)
  • NASM(openssl必需)

安装贻贝:

pip install --user mussels

重要:在cmd.exe或Powershell中的空目录或小型目录树中运行以下命令。贻贝将递归索引您当前的工作目录以寻找食谱。如果您从大型目录树(例如主目录)中运行这些命令,则将花费很长时间。

mkdir clam_dependencies
cd clam_dependencies

更新贻贝食谱:

mussels update
msl up        # (shorthand)

提示:如果musselsmsl命令不起作用,则您的%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服务器。