Добавление объектно-файловых зависимостей

У меня есть проект CMake. По какой-то причине (что я не буду здесь говорить, но которую я могу предоставить по запросу), мне нужны некоторые объектные файлы, которые являются частью той же библиотеки, чтобы скомпилироваться перед другими. В частности:

  • FILES список исходных файлов
  • file_a.c является членом FILES
  • file_d.c является членом FILES
  • file_a.o ДОЛЖЕН существовать на диске раньше file_d.c составлен

Вот что у меня сейчас:

 set_source_files_properties(
   file_a.c
   PROPERTIES
   OBJECT_OUTPUTS file_a.o
   )

 set_source_files_properties(
   file_d.c
   PROPERTIES
   OBJECT_DEPENDS file_a.o
   )

Это хорошо работает для Makefiles, но, похоже, не очень хорошо с ниндзя; Я получаю круговую ошибку зависимости и жалобы на множественные правила.

1 ответ

Не пытайтесь объявлять зависимости между объектными файлами. Если есть файлы, которые имеют зависимость, разбейте их на отдельную библиотеку с add_library а затем объявить зависимость с add_dependencies а также target_link_libraries, Там нет никаких дополнительных затрат для этого.

В частности, рассмотрите возможность просмотра объектных библиотек.

Другие вопросы по тегам