在之前的实验中,我们的工程都只有一个目标程序,也就是仅仅定义了一个 target()
,但实际的项目,可能需要同时编译多个目标程序。
这种情况下只需要在 xmake.lua 中再额外多配置一个 target()
的定义块就行了,每个 target("test")
定义唯一对应一个目标程序,它可以是可执行程序,也可以是静态库、动态库程序目标。
通过缩进的方式,可以显式区分哪些设置是对哪个 target 目标生效,当然缩进配置只是语法风格的约定,使得配置更加简洁,可读性更好,但这并不是强制要求的。
现在继续修改之前的 xmake.lua 配置,里面定义两个执行程序目标,而实际的 C 代码我们还是复用之前的 main.c
。
target("test1")
set_kind("binary")
add_files("*.c")
add_defines("WORD=\"TEST1\"")
target("test2")
set_kind("binary")
add_files("*.c")
add_defines("WORD=\"TEST2\"")
通过上面的配置看到,我们还对每个 target 额外添加了不同的宏定义,-DTEST1
定义给 test1 目标程序,-DTEST2
定义给 test2 目标程序。
需要注意,所有的 set_xx
和 add_xx