makefile 即将gcc/g++命令整合到一个单独文件夹中,便于进行快速调试。
GCC/G++基础命令:
gcc和g++均为gnu中较为流行的编译器,其中g++以.cpp为主,gcc以.c为主,其余无明显区别。后续按C/C++从程序文件到可执行文件的步骤进行介绍(helloworld.cpp,库文件为sub.lib):
1.预编译:将程序生成为.i文件,进行宏定义替换及注释消除
g++ -E helloworld.cpp -o helloworld.i
2.编译:将编译步骤之前的文件类型生成位.s(汇编)文件
g++ -S helloworld.i -o helloworld.s
3.汇编:将汇编文件之前的文件类型转化为机器码文件
g++ -c helloworld.s -o helloworld.o
4.链接:将机器码之前的文件类型 链接库文件,并生成可执行文件
g++ helloworld.o -o helloworld (此处是无所需链接库的情况)
g++ helloworld.o -o helloworld -L ./sub.lib
g++ helloworld.o ./sub.lib -o helloworld
g++ helloworld.o -o helloworld -L ./ -lsub
余下命令暂未用到,后续用到会更新
makefile基本格式:
target: prerequisites
commands
即目标(生成的文件):依赖(生成该文件所需的文件)
命令(通过依赖文件生成目标文件的过程)
helloworld为例
helloworld:helloworld.cpp
g++ ./helloworld.cpp -o helloworld.exe
makefile中默认以第一个target作为最终生成文件,其余target会在最终文件生成后删除,因此如果需要同时生成多个可执行文件,则需要在首个target前添加all: target1 target2 ...