gpt4 book ai didi

c++ - 无法构建外部库依赖项

转载 作者:行者123 更新时间:2023-12-02 10:23:31 31 4
gpt4 key购买 nike

我正在尝试使用 Visual Studio 2017 构建 ClamAV 源代码,ClamAV git 上的指南说:
外部库依赖:

ClamAV relies on a handful of 3rd partylibraries. In previous versions of ClamAV, most of these werecopy-pasted into the win32/3rdparty directory, with the exceptionbeing OpenSSL.

In ClamAV 0.102, all of these libraries are nowexternal to ClamAV and must be compiled ahead of time as DLLs (or forzlib, a static lib) and placed in the %CLAM_DEPENDENCIES% (typicallyC:\clam_dependencies) directory so the ClamAV Visual Studio projectfiles can find them.


要构建这些库中的每一个,我们建议使用 Mussels。 Mussels 是一个开源应用程序依赖项构建工具,它可以使用原始库作者想要的构建工具构建每个依赖项的正确版本。”
https://github.com/Cisco-Talos/clamav-devel/blob/dev/0.102/win32/README.md
但是贻贝在任何地方都没有。任何其他解决方案都会有所帮助,我也尝试手动添加依赖项,但错误仍然存​​在。
Build Errors

最佳答案

在提出这个问题时,贻贝工具尚未开源。贻贝项目已被公开。

见: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 中运行以下命令。 Mussels 将递归地索引您当前的工作目录以查找食谱。如果您从像主目录这样的大型目录树中运行这些命令,这将需要很长时间。
    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 with Mussels

    执行构建的试运行。这将向您显示依赖链,如果您缺少任何必需的工具,可能会提示:
    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。

    我希望这会有所帮助!如果您认为自己遇到了 Mussels 的错误,请在 GitHub 上提交问题 https://github.com/Cisco-Talos/Mussels/issues或至 https://github.com/Cisco-Talos/clamav-mussels-cookbook/issues如果您认为您发现 ClamAV 构建配方存在问题。

    如果您想提问,README 中列出了 Mussels Discord 服务器。

    关于c++ - 无法构建外部库依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58180139/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com