【问题标题】:Recursively compile seperate .cpp files Makefile递归编译单独的 .cpp 文件 Makefile
【发布时间】:2021-02-02 15:15:46
【问题描述】:

我有这样的文件结构:

Project
|-- program1
|   `-- main.cpp
|-- program2
|   `-- main.cpp
`-- program3
    `-- main.cpp

我想在项目根目录创建一个生成文件,它会自动递归获取所有 .cpp 文件并将它们编译为同一文件夹中的文件。像这样:

Project
|-- program1
|   |-- main.cpp
|   `-- main.o
|-- program2
|   |-- main.cpp
|   `-- main.o
`-- program3
    |-- main.cpp
    `-- main.o

这些程序彼此无关,因此没有任何重叠。

我以前从未创建过 makefile,而且文档很难理解。有什么帮助吗?

【问题讨论】:

    标签: c++ makefile g++


    【解决方案1】:

    这将满足您看起来的要求(如果您使用的是 GNU make):

    SRCS := $(wildcard */*.cpp)
    OBJS := $(patsubst %.cpp,%.o,$(SRCS))
    
    all: $(OBJS)
    

    您的问题有些令人困惑,因为您的示例仅显示将源文件编译为目标文件,但目录名称显示为“程序”。

    如果以上不是您想要的,请让您的问题更加清晰和详细。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-04
      • 2012-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多