cmake 没有为 Windows 上的 Xerces 3.2.5 版本生成 Xerces_autoconf_config.hpp 标头

问题描述 投票:0回答:1

我正在尝试按照这些说明从源代码为 Windows 构建 Xerces 3.2.5 库。.

我的编译器是 Visual Studio 2019。该版本是我最终为其开发代码的应用程序强制要求的,因为它的 API 仅针对该版本的 VS 进行了认证。

cmake --build

 步骤失败,因为多个文件无法找到 
Xerces_autoconf_config.hpp
。该文件确实丢失了,尽管我认为构建链中的 ~something~ 使用了 
Xerces_autoconf_config.hpp.cmake.in
Xerces_autoconf_config.hpp.in
 来生成丢失的标头。

失败的源文件表明了这一点,

// If the next line generates an error then you haven't run ./configure #include <xercesc/util/Xerces_autoconf_config.hpp>
然而

configure

是一个shell脚本,不能在windows下运行。

采取的步骤:

    下载 xerces-c-3.2.5.zip 并将其展开到一个文件夹中。
  1. 打开 VS 2019 命令提示符并 cd 到该目录
  2. mkdir build
     / 
    cd build
    
    
      按照构建说明中的 Windows 示例(上面的链接)。
  3. cmake -Wno-dev -DPROJECT_VERSION=3.2.5 -DCMAKE_INSTALL_PREFIX=G:\libs ..\src
    
    
      我必须将
    • -DPROJECT_VERSION=3.2.5
       添加到示例命令中,否则我会收到错误,因为 CMakeLists.txt 中的 
      write_basic_package_version_file()
       命令缺少版本。这纯粹是一个 SWAG,3.2.5 实际上是要传递的正确值。
  4. cmake --build . --config Debug
    
    
      这是失败的命令。
典型错误消息:

C:\Dev\xerces-c-3.2.5\src\xercesc/util/XercesDefs.hpp(46,10): fatal error C1083: Cannot open include file: 'xercesc/util/Xerces_autoconf_config.hpp': No such file or directory
我认为我必须做一些事情才能让 cmake 生成丢失的头文件,但我不知道那是什么。

cmake xerces xerces-c
1个回答
0
投票
这些标头是在构建树中生成的,而不是在源树中生成的。

检查生成的项目文件放置的位置。

您可能必须将它们复制到与其他(非生成的)标头相同的位置。

© www.soinside.com 2019 - 2024. All rights reserved.