如何使用CMake直接从目标文件构建库

时间:2012-01-17 16:46:25

标签: cmake static-libraries object-files

给定一组目标文件,您将如何使用CMake构建静态库?

使用autotools我会做

libXXX.a: $(OBJFILES)
    $(AR) cru $@ $(OBJFILES)
    $(RANLIB) $@

OBJFILES是一个目标文件列表。

如何在CMake中做到这一点?

编辑:我无法重新编译原始的cxx文件,我必须使用目标文件(* .o)来创建库。

2 个答案:

答案 0 :(得分:3)

添加custom command,例如:

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

如有必要,您可以使用add_custom_targetadd_dependencies将libXXX.a添加到特定目标,或者可以自定义依赖项。

答案 1 :(得分:1)

add_library中使用CMakeLists.txt

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