Linux中的C++编译命令和Makefile之间存在密切的关系
main.cpp
的源文件编译为名为main
的可执行文件,我们可以使用以下命令:g++ main.cpp -o main
CC = g++
CFLAGS = -Wall -O2
TARGET = main
all: $(TARGET)
$(TARGET): main.o
$(CC) $(CFLAGS) -o $@ $<
main.o: main.cpp
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(TARGET) *.o
在这个示例中,我们定义了编译器(CC)、编译选项(CFLAGS)和目标程序名称(TARGET)。all
规则依赖于$(TARGET)
,而$(TARGET)
规则依赖于main.o
。main.o
规则依赖于main.cpp
。clean
规则用于清理生成的文件。
当我们运行make
命令时,它会读取Makefile中的规则,并根据这些规则执行相应的命令来构建目标程序。例如,运行make
将使用上述Makefile中的规则编译main.cpp
并生成main
可执行文件。
总之,C++编译命令用于直接编译源代码,而Makefile是一个用于简化构建过程的文本文件。通过将编译命令整合到Makefile中,我们可以更方便地管理和构建C++项目。