Вы вызвали ADD_LIBRARY для библиотеки pugixml без каких-либо исходных файлов - PullRequest
0 голосов
/ 08 мая 2019

Я работаю над QuickRank: https://github.com/hpclab/quickrank., когда я компилирую его, я получаю ошибку

 cmake .. -DCMAKE_CXX_COMPLIER=/usr/bin/g++ -DCMAKE_BUILD_TYPE=Release
You have called ADD_LIBRARY for library pugixml without any source files. This typically indicates a problem with your CMakeLists.txt file
-- Configuring done
CMake Error: Cannot determine link language for target "pugixml".
CMake Error: CMake can not determine linker language for target: pugixml
CMake Error: CMake can not determine linker language for target: pugixml
-- Generating done
-- Build files have been written to: /home/students/s4438236/quickrank/build_
s4438236@moss:~/quickrank/build_$ make
make[2]: *** No rule to make target `CMakeFiles/pugixml.dir/build'.  Stop.
make[1]: *** [CMakeFiles/pugixml.dir/all] Error 2
make: *** [all] Error 2

Я нахожу исходный файл в папке lib\pugixml, как я могу исправить эту ошибку?

1 Ответ

0 голосов
/ 08 мая 2019

Когда вы вызываете команду add_library CMake, вы должны предоставить исходные файлы для этой цели.Если мы рассмотрим файл CMakeLists.txt верхнего уровня, то увидим, где происходит ошибка:

# external libraries
file(GLOB_RECURSE pugixml_sources ${CMAKE_SOURCE_DIR}/lib/pugixml/src/*.cpp)
add_library(pugixml STATIC ${pugixml_sources})

Ошибка CMake предполагает, что переменная pugixml_sources пуста, что указывает на то, что /lib/pubixml можеттакже были пустыми.Если вы изначально не запускали команду git clone с --recursive, вы не получили бы подмодуль pugixml.

Поскольку вы сказали, что исходники pugixml уже есть, я бы предложил удалить ваш кэш CMake.и папка сборки CMake.Повторный запуск CMake с нуля, скорее всего, позволит ему увидеть исходные файлы pugixml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...