Я пытаюсь использовать эту библиотеку в моем исходном коде. Я не могу показать вам свою базу кода, поэтому я сделал простой проект hello world, который пытается использовать эту библиотеку. Следуя инструкциям по установке библиотеки с использованием CMake, она работает отлично, проблема в том, что я пытаюсь поместить ее в каталог своего проекта и скомпилировать ее с помощью моего собственного файла CmakeLists.txt.
Вот библиотека для скачивания: ftp: //ftp.unidata.ucar.edu/pub/udunits/
Я использую udunits-2.2.26.tar.gz
Это структура моего проекта:
proj/
|-- CMakeLists.txt
|-- ext
| `-- udunits-2.2.26/
`-- src
`-- main.cpp
Мой CMakeLists.txt:
cmake_minimum_required(VERSION 3.1)
project(proj)
add_subdirectory("ext/udunits-2.2.26")
add_executable(app src/main.cpp)
install(TARGETS app DESTINATION bin)
Мой main.cpp:
#include <iostream>
int main() {
std::cout << "Hello World" << std::endl;
return 0;
}
Что я делаю, так это создаю каталог build / в proj и вызываю CMake так: ccmake ..
Я запускаю конфигурацию, затем генерирую файлы и, наконец, вызываю make.
Вот мой вывод:
[ 8%] Built target app
Scanning dependencies of target udunits2_doc
[ 13%] Built target udunits2_doc
Scanning dependencies of target udunits2lib_doc
make[2]: *** No rule to make target `../COPYRIGHT', needed by `../ext/udunits-2.2.26/lib/udunits2lib.info'. Stop.
make[1]: *** [ext/udunits-2.2.26/lib/CMakeFiles/udunits2lib_doc.dir/all] Error 2
make: *** [all] Error 2
В библиотеке есть файл COPYRIGHT, содержащий сведения о лицензии для этой библиотеки. Их CMake проверяет, существует ли он. Я не уверен, почему у меня возникают проблемы при компиляции и добавлении его в мои собственные CMakeLists в качестве подкаталога.
Если я соберу все файлы make для COPYRIGHT и удаляю все зависимости от него, он прекрасно скомпилируется. Так что это как-то связано с файлами .texi, и я не уверен, как это исправить.
Я весь день гуглил и пробовал разные вещи, буду признателен за любую помощь! Спасибо!