一、更换eclipse编译器
eclipse默认使用的是CDT的make,而且默认不显示出来,因此我们现在打破默认选项。
点击project选项下的Propeties(如果发现此选项为灰色不可点击,请双击工程文件名hello再试),
点击上图红色框中所指,可以看到默认使用的是CDT Internal builder,我们修改其为gun make,如下图所示
然后点击Apply and close
这时我们再次点击“锤子”(即构建),发现在Debug文件夹下生成了一个makefile文件,打开可以看到确实是gun make风格。
为何此时会生成makefile文件呢?其实原因在于IDE修改为外部构建器时,会自动生成相应的makefile文件。
但这里有一个问题,如果我们试图去修改makefile文件,然后再编译,发现会自动还原,这是因为每次编译时都会自动生成makefile文件,因此我们需要设置不让其自动生成makefile文件。
二、如何使用自己写的makefile文件
点击project选项下的Propeties(如果发现此选项为灰色不可点击,请双击工程文件名hello再试),点击C/C++ Build选项,去掉下图红色圈中的勾。然后点击Apply and close。
这时我们再修改makefile,然后编译就不会还原了。
问题来了,那我们如何使用自己写的makefile文件呢?
首先点击Project选项中的clean,删除中间文件和目标文件
然后删除Debug文件夹中的所有文件,在Debug文件夹中新建一个Makefile。注意:这里makefile文件必须新建在Debug文件夹下,否则IDE不识别文件
下面编写一个简单的makefile测试下。
hello.exe:main.o
gcc $^ -o $@
%.o:../%.c
gcc -c $< -o $@
.PHYONE:clean
clean:
rm -rf *.o hello.exe
然后编译一下,啊哦,居然报错,我的乖乖(表情包:砸电脑)
从错误提示可以看到没有规则去创建目标文件,其实就是没有写规则,这里问题是因为在eclipse中默认使用的是all目标,现在我们需要自己设置目标。(关于makefile文件的编写,后面有时间会详细写这部分),点击Project选项中的Properies选项。
可以看到默认使用的还是默认的make命令规则,因此我们这里直接修改即可,如下图:
点击Apply and colse。
右键工程名,点击Build Targets -> Create。如下图:
下面添加构建命令
从图中可以看到,蓝色圈中是我们编写makefile的目标,因此我们再新建构建目标时目标名就是我们的makefile文件的目标,可以看到,我们的Makefile文件有两个目标,因此我们需要新建两个构建命令。(同理新建clean)
现在我们直接双击hello.exe就可以构建我们的工程了。
如何运行程序呢?
我们右键工程名,按下图就可以运行结果了