将所有.cpp文件编译为一个可执行文件

Compile all .cpp files to one executable?

本文关键字:一个 可执行文件 cpp 文件 编译      更新时间:2023-10-16

这是我项目的目录:
目录的根/顶级:

11/05/2015  05:59 PM    <DIR>          .
11/05/2015  05:59 PM    <DIR>          ..
11/05/2015  05:59 PM    <DIR>          .git
11/04/2015  11:09 PM                35 Makefile
11/05/2015  05:59 PM               215 README.md
11/04/2015  10:56 PM    <DIR>          src
               2 File(s)            250 bytes
               4 Dir(s)  405,634,633,728 bytes free

SRC的内容:

11/04/2015  10:56 PM    <DIR>          .
11/04/2015  10:56 PM    <DIR>          ..
11/04/2015  10:56 PM                74 headers.h
11/04/2015  11:02 PM               386 shell.cpp
               2 File(s)            460 bytes
               2 Dir(s)  405,634,633,728 bytes free

因此,在src目录中,有 2 个文件。 shell.cppheaders.h.在 makefile 中,我想将 src 目录中的两个文件编译为一个二进制可执行文件。如果需要,我将首先编译为 .o 文件,然后将 .o 文件编译为二进制文件。

另外,我使用

cygwin,对于我的版本,我不能使用gmake。所以,请给我一个需要正常make的解决方案。

.PHONY: all clean
BIN = ../exe
CXX = g++5
CFLAGS  = -Wall -Og -g3 -ggdb -pipe -march=i686 -std=c++17
CPP=FILES.cpp
all: $(BIN)
clean:
    @echo Delete .obj files
    @rm -f *.o
%.o: %.cpp
    @echo Compiling $*
    @$(CXX) $(CFLAGS) -c $^ -o $@
$(BIN): $(CPP:%.cpp=%.o)
    @echo Link executable
    @$(CXX) $(CFLAGS) -o $(BIN)

安装 gmake