【问题标题】:How to create directories from makefiles?如何从 makefile 创建目录?
【发布时间】:2011-06-17 07:18:01
【问题描述】:

你能帮我写下我写的代码吗?

VPATH= balll mall fall
OBJECTS= objj/goka.o objj/foka.o objj/hoka.o
exec/gola: $(OBJECTS)
    gcc $^  -o  $@  
$(OBJECTS): objj/%.o : %.c
    gcc -c  $<  -o  $@  

我想要做的是:我没有 exec 目录和 obj 目录,我希望在编译文件期间创建它们并将这些文件保存在各自的目录中。我可以这样做吗?创建目录 exec 并告诉 gcc 将 gola 目标文件保存在 exec 目录中,与目标文件相同。 有什么命令可以处理吗?

【问题讨论】:

    标签: gcc makefile cygwin gnu-make


    【解决方案1】:

    尝试仅订购的先决条件。 (见the make manual)。

    【讨论】:

      【解决方案2】:

      只需在编译之前将mkdir -p dir1 dir2 添加到您的makefile 的相应规则中即可。

      示例:(您必须针对您的特定设置进行修改)

      DIR = obj exec
      VPATH= balll mall fall
      OBJECTS= objj/goka.o objj/foka.o objj/hoka.o
      
      exec/gola:$(OBJECTS)
          gcc $^  -o  $@  
      $(OBJECTS): objj/%.o : %.c
          mkdir -p $(DIR)
          gcc -c  $<  -o  $@  
      

      【讨论】:

      • 很抱歉,但它无法正常工作,并且错误提示 make goka.o command not found what to do
      • j.w.r 错误是您编写 mkdir 时没有提及依赖项,目标文件一看到依赖项名称就会跳转到依赖项
      • @karthik - 是的,很抱歉,我的例子很草率。相反,我会按照 make 手册中 @eriktous 的建议去做。
      猜你喜欢
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      • 2020-10-10
      • 2011-03-14
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多