【问题标题】:Using libzip library from Visual Studio 2017 and cmake使用 Visual Studio 2017 和 cmake 中的 libzip 库
【发布时间】:2019-08-11 13:34:40
【问题描述】:

我有一个最初用 Linux 编写的 c++ 程序。该程序使用库 libzip 中的函数:

https://libzip.org

我现在在 Visual Studio 2017 中的基于 Windows 的平台上工作。一切正常,因为我基本上可以使用与在 Linux 平台上使用的相同的 cmake 文件。但是,在 Linux 中,我使用包管理器来安装 libzip。我在 Windows 中没有该选项。我不知何故需要为 libzip 构建一个 Windows 版本,并将文件(头文件和 lib 文件)包含在我的 CMakeLists.txt 文件中。有人可以为此提供分步指南吗?

【问题讨论】:

  • Can someone help me with a step-by-step guide for this? - 此类问题的站点错误。由于您已经在 Windows 中拥有 CMake 项目,因此您应该具备如何构建它的基本知识。为什么不将知识应用于libzip 项目?如果你会得到一些具体的错误,你可以在这里问(但在问之前先谷歌)。
  • 嗨。我已经知道如何建造了。如果我删除所有对 libzip 的引用,它就会起作用。当我尝试使用 libzip 的函数时,我得到以下类型的错误:致命错误 LNK1120:7 未解决的外部。在 CMakeLists.txt 文件中,我添加了 set(LIBZIP_LIBRARY "xx") set(LIBZIP_INCLUDE_DIR "xx") 其中“xx”是我构建的头文件和 libzip 的 lib 文件的正确目录。
  • 好吧,所以问题不在于构建 libzip,而在于将它用于您的项目。 “未解决的外部问题”表示您忘记与库链接。请参阅 that question 关于在 CMake 中链接到库的信息。

标签: c++ cmake visual-studio-2017 runtime libzip


【解决方案1】:

看看vcpkg。它是 Windows 平台的包管理器。它为 Windows 构建和安装许多开源库。 libzip 被特别提及为端口之一。

【讨论】:

    【解决方案2】:

    您可以在 Visual Studio 中使用 Nuget 包管理器吗?

    1. 右键单击您的解决方案
    2. 选择“为您的解决方案管理软件包”
    3. 搜索 libzip
    4. 选择 lipzip 并点击安装
    5. 您现在应该可以#include "zip.h"

    【讨论】:

    • 是的...但它不会构建“未解析的外部符号”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多