C++ makefile菜鸟教程:编译过程详解

分类:知识百科 日期: 点击:0

Makefile是一种用于编译和链接C++程序的文本文件,它是一种简单的脚本语言,用于指定编译和链接的步骤。编译过程是将源代码文件编译成可执行文件的过程。

Makefile文件的编写包括三个步骤:编写Makefile文件、编译程序和链接程序。

编写Makefile文件

Makefile文件是一个文本文件,其中包含了编译和链接的指令,以及源文件的位置。要编写Makefile文件,需要知道源文件的位置,以及编译和链接的步骤。

# Makefile

#指定源文件
SRCS = main.cpp foo.cpp bar.cpp

#指定目标文件
TARGET = myprog

#指定编译器
CC = g++

#指定编译器选项
CFLAGS = -Wall -g

#指定链接器
LD = g++

#指定链接器选项
LDFLAGS = 

#指定目标文件
OBJS = $(SRCS:.cpp=.o)

#生成目标文件
$(TARGET): $(OBJS)
    $(LD) $(LDFLAGS) -o $(TARGET) $(OBJS)

#编译源文件
.cpp.o:
    $(CC) $(CFLAGS) -c $<

#清除中间文件
clean:
    rm -f $(OBJS) $(TARGET)

上面的Makefile文件中,定义了源文件的位置,定义了编译器和链接器的选项,定义了目标文件的生成和清除中间文件的步骤。

编译程序

编译程序是将源代码文件编译成可执行文件的过程。Makefile文件中定义了编译器的选项,执行编译步骤需要使用编译器,例如g++。

#使用g++编译源文件
g++ -Wall -g main.cpp foo.cpp bar.cpp -o myprog

上面的命令行中,-Wall表示输出所有警告信息,-g表示输出调试信息,-o表示输出可执行文件到myprog。

链接程序

链接程序是将编译后的目标文件链接成可执行文件的过程。Makefile文件中定义了链接器的选项,执行链接步骤需要使用链接器,例如g++。

#使用g++链接编译后的目标文件
g++ -o myprog main.o foo.o bar.o

上面的命令行中,-o表示将目标文件链接成可执行文件myprog。

使用方法

使用make命令可以自动执行Makefile文件中定义的编译和链接步骤。

  • 进入包含Makefile文件的目录,执行make命令:
    cd myprog
    make
  • make命令会自动执行Makefile文件中定义的编译和链接步骤:
    g++ -Wall -g main.cpp foo.cpp bar.cpp -o myprog
    g++ -o myprog main.o foo.o bar.o
  • make命令会生成可执行文件myprog:
    myprog
标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。