【发布时间】:2022-08-21 02:20:18
【问题描述】:
我在 Visual Studio 2017 中构建 XLNT (https://github.com/tfussell/xlnt) 库时遇到问题,我很困惑。我下载了最新版本的库和最新版本的 CMake。当我运行 CMake gui 时,它找不到 libstudxml 文件。有帖子说需要下载的;所以我下载了那个库(https://www.codesynthesis.com/projects/libstudxml/#download)并将它放在第三方/libstudxml 中。
然后我得到错误,它在 libstudxml 中找不到一些 .hxx 文件。我发现这篇文章 https://discourse.cmake.org/t/cmake3-20-cant-generate-xint-package/2987 说我需要将 libstudxml.build\\CMakeLists.txt 文件中某些路径中的 libstudxml 替换为 xml。然后它仍然找不到这三个 .hxx 文件(content.hxx、exception.hxx 和 forward.hxx)。我查看了 libstudxml/xml 文件夹(它们都在那里,但没有扩展名)。我将 CMakeLists.txt 文件更改为没有 .hxx 扩展名,并且 Cmake 能够生成。
当我在 Visual Studio 中编译它时(在 Cmake GUI 中点击 Project),我得到了一些文件无法再次找到 content.hxx 文件并且构建失败的错误。我有点绕圈子跑。为了让 cmake 生成,我必须删除 .hxx 扩展名,但随后一些文件抱怨,因为他们正在寻找它们。我尝试将三个文件不带扩展名并从 CMakeLists.txt 文件中删除扩展名,但随后一些文件正在寻找不带扩展名的文件。保留带有和不带有扩展名的文件也是一个集群。我知道 C++ 可以处理无扩展名的头文件,但 CMake 文件似乎需要扩展名,但我认为 VS 对它们不满意。
此外,虽然我需要将文件夹名称更改为 xml 而不是 CMake 的 libstudxml,但源代码中的各种包含文件仍在寻找 libstudxml;所以这不起作用。
有什么想法吗?
谢谢 -
铝
-
话虽如此,您可能希望使用 Microsoft\ 的 vcpkg 安装 xlnt:https://vcpkg.io/en/packages.html
-
谢谢你。我想知道为什么我下载的 zip 没有扩展名……也就是说,我会看看使用 vcpkg,因为它应该让生活更轻松。
-
我没有专门测试过这个库,但可以告诉你 vcpkg 对具有复杂依赖关系的第三方库很有帮助。你想从这里开始; https://github.com/microsoft/vcpkg
-
那成功了。像魅力一样工作。这个页面也是一个很好的介绍:vcpkg.io/en/getting-started.html。安装后,我从他们的文档中获取了一个 xlnt 示例,它编译并运行良好。再次感谢!