cmake обнаруживает неизвестную цель, указанную в target_link_libraries - PullRequest
0 голосов
/ 14 ноября 2018

Кажется, что cmake не может обнаружить цели, которые не существуют.Честно говоря, я был удивлен, узнав об этом.

target_link_libraries(Foo
  PRIVATE
    Bar
    Car
)

Если библиотека Car не существует, я ожидаю, что cmake вернет ошибку во время конфигурации.К сожалению, это не случай.Или это поведение добровольное?

Я использую версию cmake 3.12.1

1 Ответ

0 голосов
/ 14 ноября 2018

Только первый аргумент target_link_libraries требует , чтобы быть target , другой аргумент может быть целью, но может быть и другими вещами.Возможные типы не первых аргументов описаны в документации CMake :

  • Имя цели библиотеки
  • Полный путь к файлу библиотеки
  • Простое имя библиотеки
  • Флаг ссылки

(ключевые слова в этом списке опущены).

В вашем случае CMake интерпретирует Car как простоеимя библиотеки, поэтому она передаст компоновщику опцию -lCar.

Обратите внимание, что CMake не пытается интерпретировать флаги компоновщика.

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