2017-01-27 3 views
1

Я пытаюсь создать проект C++ с использованием Cmake, и он не может найти библиотеки LibXml2 (я считаю), что я скачал и установил правильно. Это на машине с Windows 10 с cmake 3.7.1.cmake не может найти LibXml2

Вот соответствующая часть файла конфигурации 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 я получаю это:

CMake Ошибка при C:/Program Files /CMake/доля/CMake-3,7/Модули/FindPackageHandleStandardArgs.cmake: 138 (сообщение): Не удалось найти Libxml2 (отсутствует: LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR) Стек вызовов (самый последний вызов сначала): C:/Program Файлы/CMake/share/cmake-3.7/Модули/FindPackageHandleStandardArgs.cmake: 378 (_FPHSA_FAILURE_MESSAGE) C:/Program Файлы/CMake/share/cmake-3.7/Модули/FindLibXml2 .cmake: 58 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)

I ' вы боролись с этим один день или около того, может ли кто-нибудь дать мне подсказку, что я делаю неправильно?

ответ

3

При запуске CMake, определить переменные через -D и используйте косую черту в качестве разделителя каталогов (и забой, чтобы избежать пространства имен каталогов.

cmake .. -DLIBXML2_INCLUDE_DIR:PATH=C:/Program\ Files/libxml2/include -DLIBXML2_LIBRARIES:PATH=C:/Program\ Files/libxml2/lib 
+0

Да, это сработало! Большое спасибо. I предположим, это то, что происходит, когда другие разработчики находятся на компьютерах Mac. – jordantrc