нет правила для создания цели, используя CMAKE для добавления библиотеки. Библиотека компилируется просто одна - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь использовать эту библиотеку в моем исходном коде. Я не могу показать вам свою базу кода, поэтому я сделал простой проект 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, и я не уверен, как это исправить.

Я весь день гуглил и пробовал разные вещи, буду признателен за любую помощь! Спасибо!

...