我想从对象库中创建一个共享库,但是我不知道生成器表达式在生成过程中何时进行评估。在此示例中:
add_library(foo OBJECT foo.c)
add_library(boo SHARED $<TARGET_OBJECTS:foo>)
target_sources(foo PRIVATE boo.c)
boo共享库是否包含boo.c
?
答案 0 :(得分:0)
经过测试后,boo.c位于boo库中。我节省了您的时间:)
答案 1 :(得分:0)
出于完整性考虑:
https://cmake.org/cmake/help/v3.12/manual/cmake-generator-expressions.7.html?highlight=generator
生成器表达式在构建系统生成期间进行评估,以生成特定于每个构建配置的信息。
...
这意味着它们启用条件链接,编译时使用的条件定义以及条件包含目录等。条件可以基于构建配置,目标属性,平台信息或任何其他可查询的信息。