【问题标题】:how to generically get all .o files for ar如何一般获取 ar 的所有 .o 文件
【发布时间】:2015-04-12 19:33:12
【问题描述】:

我有一个包含一些子文件夹\子单元的源代码树。每个子文件夹中都有一个ma​​kefile。目标文件将由这些子文件夹makefile创建,目标文件将由它们放在顶层的obj文件夹中。

顶层的 ma​​kefile 将从该 obj 文件夹中的所有可用对象文件生成一个 .a 文件

我正在考虑通过让顶级ma​​kefile 自动找出该obj文件夹中的所有目标文件来最小化添加新cpp文件时的更改。

我尝试了以下方法,但没有运气:

OBJ_LIST=$(wildcard ${OBJ_DIR}/*.o)

谁能帮帮我?

【问题讨论】:

    标签: c++ makefile


    【解决方案1】:

    这是我用来生成 *.a 文件的 Makefile

    NAME    = zzz.a
    
    SRC     = xxx.c \
              yyy.c
    
    OBJ     = $(SRC:.c=.o)
    
    CC      = gcc
    
    CFLAGS  = -W -Wall -Wextra -O2
    
    RM      = rm -f
    
    all:    $(NAME)
    
    $(NAME):        $(OBJ)
                    ar rc $(NAME) $(OBJ)
                    ranlib $(NAME)
    
    clean:
                $(RM) $(OBJ)
    
    fclean:
                $(RM) $(OBJ) $(NAME)
    
    re:             fclean all
    
    .PHONY: all clean fclean re
    

    $(SRC:.c=.o) 用于操作项目中包含的所有 *.o 文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-17
      • 2010-10-31
      • 2019-09-02
      • 2011-06-08
      相关资源
      最近更新 更多