当前位置: 首页 > 知识库问答 >
问题:

cmake找不到LibXml2

仲孙景胜
2023-03-14

我正在尝试使用Cmake构建C项目,但它找不到我下载并正确安装的LibXml2库(我相信)。这是在带有cmake 3.7.1的Windows 10计算机上。

以下是 cmake 配置文件的相关部分:

find_package(LibXml2 REQUIRED)
include_directories(${LIBXML2_INCLUDE_DIR})
set(LIBS ${LIBS} ${LIBXML2_LIBRARIES})

以下是我的环境变量:

LIBXML2_INCLUDE_DIR=C:\Program Files\libxml2\include
LIBXML2_LIBRARIES=C:\Program Files\libxml2\lib

以下是C:\Program Files\libxml2目录的内容:

/mnt/c/Program Files/libxml2$ tree .
.
├── bin
│   ├── libxml2.dll
│   ├── xmlcatalog.exe
│   └── xmllint.exe
├── include
│   └── libxml
│       ├── c14n.h
│       ├── catalog.h
│       ├── chvalid.h
│       ├── debugXML.h
│       ├── dict.h
│       ├── DOCBparser.h
│       ├── encoding.h
│       ├── entities.h
│       ├── globals.h
│       ├── hash.h
│       ├── HTMLparser.h
│       ├── HTMLtree.h
│       ├── list.h
│       ├── nanoftp.h
│       ├── nanohttp.h
│       ├── parser.h
│       ├── parserInternals.h
│       ├── pattern.h
│       ├── relaxng.h
│       ├── SAX2.h
│       ├── SAX.h
│       ├── schemasInternals.h
│       ├── schematron.h
│       ├── threads.h
│       ├── tree.h
│       ├── uri.h
│       ├── valid.h
│       ├── xinclude.h
│       ├── xlink.h
│       ├── xmlautomata.h
│       ├── xmlerror.h
│       ├── xmlexports.h
│       ├── xmlIO.h
│       ├── xmlmemory.h
│       ├── xmlmodule.h
│       ├── xmlreader.h
│       ├── xmlregexp.h
│       ├── xmlsave.h
│       ├── xmlschemas.h
│       ├── xmlschemastypes.h
│       ├── xmlstring.h
│       ├── xmlunicode.h
│       ├── xmlversion.h
│       ├── xmlwriter.h
│       ├── xpath.h
│       ├── xpathInternals.h
│       └── xpointer.h
├── lib
│   ├── libxml2_a_dll.lib
│   ├── libxml2_a.lib
│   └── libxml2.lib
└── readme.txt

我收到的cmake输出是:

C:/程序文件/CMake/共享/cmake-3.7/模块/查找包处理程序标准Args.cmake:138(消息):找不到 LibXml2 (缺少:LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR) 调用堆栈(最近调用的优先): C:/程序文件/CMake/共享/生成-3.7/模块/查找包手柄标准Args.378 (_FPHSA_FAILURE_MESSAGE) C:/程序文件/CMake/共享/共享/生成-3.7/模块/FindLibXml2.cmake:58 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)

我已经和这个问题斗争了一天左右了,有人能告诉我我做错了什么吗?

共有1个答案

陈霄
2023-03-14

运行CMake时,在via -D中定义变量,并使用斜杠作为目录分隔符(和退格键来转义目录名称中的空格。

cmake .. -DLIBXML2_INCLUDE_DIR:PATH=C:/Program\ Files/libxml2/include -DLIBXML2_LIBRARIES:PATH=C:/Program\ Files/libxml2/lib
 类似资料:
  • 因此,我安装了freeglut3和build-essential(就像我在互联网上看到的那样)。但一切都没有改变。 我怎样才能找到opengl来写我自己的链接到CMAKE?我还能做什么来安装VTK?

  • 问题内容: 我试图用cmake建立一个项目。这个项目正在使用Java等。问题是在代码处 我收到以下错误: 虽然 输出 怎么会?该错误的原因是什么? 问题答案: 如果您使用的是Linux操作系统,则必须将Java home设置为export

  • 我有两个带有CMake的git存储库,一个是游戏引擎,另一个是我正在用游戏引擎制作的游戏。 原来,这个游戏引擎有一个子模块包含在项目的cmakelists.txt中,而在游戏存储库中,游戏引擎被添加为一个子模块,也包含在cmakelists.txt中。但是在编译两个项目的时候,游戏引擎编译一切正常,没有错误,我更新游戏知识库更新子模块,而在编译游戏的时候,不知什么原因没有找到游戏引擎子模块。 游戏

  • 类似的问题。 什么给?

  • 我正在尝试用MinGW编译器用CMake构建PODOFO库。它需要一些外部库,如zlib、jpeg、openssl和freetype。我的cmake命令如下: cmake-g“mingw makefiles”_path=c:\users\abhishek\downloads\openSSL-0.9.8h-1-lib\lib-dpodofo_build_shared:bool=false.. 不知何