C++ CMake生成器表达式求值顺序
我想从对象库创建一个共享库,但我不知道生成器表达式在生成过程中何时求值。在本例中:C++ CMake生成器表达式求值顺序,c++,cmake,C++,Cmake,我想从对象库创建一个共享库,但我不知道生成器表达式在生成过程中何时求值。在本例中: add_library(foo OBJECT foo.c) add_library(boo SHARED $<TARGET_OBJECTS:foo>) target_sources(foo PRIVATE boo.c) add_库(foo对象foo.c) 添加库(boo共享$) 目标来源(foo私有boo.c) boo共享库是否包含boo.c?测试后,boo.c在boo库中。我节省了您的时间:)为
add_library(foo OBJECT foo.c)
add_library(boo SHARED $<TARGET_OBJECTS:foo>)
target_sources(foo PRIVATE boo.c)
add_库(foo对象foo.c)
添加库(boo共享$)
目标来源(foo私有boo.c)
boo共享库是否包含boo.c?测试后,boo.c在boo库中。我节省了您的时间:)为了完整: 生成器表达式在生成系统期间进行求值,以生成特定于每个生成配置的信息 这意味着它们支持条件链接、编译时使用的条件定义以及条件包含目录等。这些条件可能基于构建配置、目标属性、平台信息或任何其他可查询信息
为什么不添加boo.c来直接添加_库调用?@Noki:因为在我的例子中,它更复杂,有文件和子目录。