我正在使用 GNU make 来编译我的 fortran 项目。在我的特殊情况下,我有两个静态库,每个库都有一个相关对象列表。我的 Makefile 包含:
LIB_BTMOD = btmod
LIB_btmod_OBJS = \
m_bt_check \
m_bt_execute
LIB_MDLMOD = mdlmod
LIB_mdlmod_OBJS = \
m_model_set \
m_model_run
之后,我想创建每个库
$(LIB_BTMOD) : $(LIB_btmod_OBJS:%=%.o)
ar rc lib$(@).a $^
$(LIB_MDLMOD) : $(LIB_mdlmod_OBJS:%=%.o)
ar rc lib$(@).a $^
这个解决方案对我来说似乎有点多余。如何仅将它与一个多个目标一起使用?
我的提议看起来像:
$(LIB_BTMOD) $(LIB_MDLMOD) : $(LIB_$(@)_OBJS:%=%.o)
ar rc lib$(@).a $^
但这并没有按预期扩展先决条件。在这一点上我做错了什么?
非常感谢您的帮助。
此致