CMake не генерирует правила для IMPORTED_IMPLIB - PullRequest
1 голос
/ 28 апреля 2020

Я недавно начал исправлять неработающую сборку на основе CMake.

В проекте используется предварительно собранная библиотека (например, файл .lib & .dll). Зависимость рассматривается как импортированная цель; например:

add_library(the_dependency SHARED IMPORTED GLOBAL)
set_target_properties(
    the_dependency
    PROPERTIES
    IMPORTED_IMPLIB "definitely_correct_path/the_dependency.lib"
)

Сборка проекта с использованием генератора Visual Studio работает нормально. Тем не менее, использование Ninja нарушает сборку, оставляя меня с этой ошибкой:

ninja: error: 'the_dependency.lib', необходимый для 'awesome / target', отсутствует и не имеет известного правила для его создания

Примерно то же самое относится и к NMake:

NMAKE: фатальная ошибка U1073: не знаю, как сделать 'the_dependency.lib'

Что я пробовал:

  • Я дополнительно определил свойство IMPORTED_LOCATION.
  • Я проверил пути, и они определенно верны.

Также Находясь в сгенерированных файлах сборки (т.е. build.ninja), он предоставляет правило для «генерации» DLL, но не для файла LIB.

Есть что-то, чего мне не хватает?

...