代码之家  ›  专栏  ›  技术社区  ›  Hind Forsum

如何使用cmake将一些cpp文件编译为对象文件?[复制品]

  •  0
  • Hind Forsum  · 技术社区  · 5 年前

    这个问题已经有了答案:

    通常,几个不同的库/可执行文件将与输入共享同一个.cpp文件,而我不希望多次编译一个cpp文件。cmake是否支持如下命令 add_object(...) ?

    如何做到这一点?

    谢谢。

    1 回复  |  直到 5 年前
        1
  •  0
  •   Guillaume Racicot    5 年前

    在最新的cmake版本中,可以使用对象库:

    add_library(my_cpps OBJECT a.cpp b.cpp c.cpp)
    

    然后您可以将其“链接”到其他目标:

    add_library(my_lib1 d.cpp e.cpp f.cpp)
    target_link_libraries(my_lib1 PUBLIC my_cpps)
    
    add_library(my_lib2 f.cpp g.cpp h.cpp)
    target_link_libraries(my_lib2 PUBLIC my_cpps)