起因
linux环境下,编译c++程序很麻烦,后面g++ -o demo demo.cpp ……往往跟了许多许多东西,这些每次编译的时候都要书写,所以就产生了makefile快速编译方式,具体操作如下。
怎么用makefile?
第一步:下载
makefile是个插件,需要在Vscode里面下载,
第二步:练手
先只针对于主函数,没有调用其他库。
在根目录下创建一个文件叫my
在VScode里面可以查看
然后创建main.cpp文件和makefile文件,直接在VScode里面创建即可,makefile文件直接命令为makefile。
在main.cpp里面输入以下代码:
#include <iostream>
using namespace std;
int main(){
cout <<"我是一只小小鸟\n"<<endl;
}
在makefile里面输入以下代码:
all:main
main:main.cpp
g++ -o main main.cpp
clean:
rm -f main
其中:
第一行表示表示可执行文件,一般每一个.cpp文件(你自己创建的)都有一个可执行文件,第一行最前面固定用all,如果不止一个,用空格隔开。
第二行表示第一行可执行文件的依赖文件,只要依赖文件发生变化,就会执行第三行命令。
比如main的依赖文件是main.cpp,如果main.cpp发生了变化,就执行 g++ -o main main.cpp
第四行表示删除所以第一行的可执行文件。如果不止一个,就用空格隔开。
注意,第三行和第四行前面要用tab跳格键,不要直接用空格打几个空格。
第三步:编译
回到secure,输入make,即可执行
若文件没有发生变动,则make后无反应,显示不需要修改,如下图:
编译:
输入:./main
也可以删除可执行文件:输入make clean
小技巧
我们在用Linux编译的时候总是感觉到编译命令太麻烦了,比如
总是这么一大串,所以可以这里想讲一下如何利用makefile为我们减少麻烦。就是对地址进行变量替换。
进入makefile,可以看到编译命令很长很长
我们在头部创建一个变量,把地址赋给变量
地址用空格隔开,不要加分号结尾。
就是这样
把地址用变量代替,使用变量用$(变量名字)
注意,这里可以不用在意排序,不用对位。
还有一点
VScode的上一步快捷键是:ctrl+z
撤销上一步快捷键是:shift+ctrl+z