Добавление объектно-файловых зависимостей
У меня есть проект 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
, Там нет никаких дополнительных затрат для этого.
В частности, рассмотрите возможность просмотра объектных библиотек.