2012-01-17 2 views
1

Учитывая набор объектных файлов, как бы вы создали статическую библиотеку с CMake?Как создать библиотеку непосредственно из объектных файлов с CMake

С Autotools я бы

libXXX.a: $(OBJFILES) 
    $(AR) cru [email protected] $(OBJFILES) 
    $(RANLIB) [email protected] 

OBJFILES будучи список объектных файлов.

Как это сделать в CMake?

EDIT: я не могу перекомпилировать исходные файлы cxx, я должен использовать объектные файлы (* .o) для создания библиотеки.

ответ

3

Добавить custom command, что-то вроде:

add_custom_command(OUTPUT libXXX.a COMMAND ${AR} cru ${OBJFILES}). 

При необходимости вы можете использовать add_custom_target и add_dependencies, чтобы добавить libXXX.a к определенной цели, или возможно, для настройки зависимостей.

1

Использование add_library в CMakeLists.txt:

add_library(XXX STATIC foo.c bar.cc baz.cxx) 
+0

Благодарим вас за ответ. Тем не менее, дело здесь в том, что у меня есть объектные файлы, и я не могу перекомпилировать файлы cxx. Таким образом, я просто хочу использовать существующие объектные файлы для создания библиотеки. – Barth