【问题标题】:Makefile wildcard dependenciesMakefile 通配符依赖项
【发布时间】:2015-02-06 05:10:48
【问题描述】:

我想使用通配符将所有 .cpp 和 .cc 文件包含在目标的依赖项中。

目前,我必须执行以下操作:

all: main.cpp file1.cc file2.cc
    g++ -O3 -o all main.cpp file1.cc file2.cc -I./include -L./lib

以下似乎不起作用:

all: %.cpp %.cc
    g++ -O3 -o $@ $^ -I./include -L./lib

我得到错误 make: *** No rule to make target '%.cc', required by 'all'.停下来。

【问题讨论】:

    标签: c++ makefile


    【解决方案1】:
    targets := $(wildcard *.cpp) $(wildcard *.cc)
    all: $(targets)
            g++ $(targets)
    

    这对我有用

    【讨论】:

      【解决方案2】:

      “%”代表隐式模式规则,“*”是通配符。

      targets := $(wildcard *.cpp *.c)
      all: $(targets)
          g++ $(targets)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-14
        • 1970-01-01
        • 2011-10-17
        • 2012-10-04
        • 1970-01-01
        • 1970-01-01
        • 2013-04-27
        • 1970-01-01
        相关资源
        最近更新 更多