Makefile的编译
首先 makefile 分两步 1.编译 使用cl 2.链接 使用link
1.编译是 .c生成 .obj
2.链接是 .obj生成.exe
下面代码表示 main.cpp func.cpp func.h三个文件生成一个sinley.exe 的代码
main.exe:func.obj main.obj //main.exe 依赖func.obj main.obj
link func.obj main.obj /nologo /out:sinley.exe //字母之间一定要加空格
//连接func.obj main.obj两个文件最后输出sinley.exe
func.obj:func.cpp //func.cpp编译成func.obj,下面main.cpp也是生成main.obj
cl /c func.cpp /nologo // cl表示编译命令 /c表示要生成.obj文件
main.obj:main.cpp func.h //main.cpp的代码是依赖func.h的所以有两个 .h文件不用编译
cl /c main.cpp /nologo
.PHONY:clean
clean: //删除.obj和删除.exe文件
del *.obj *.exe
func.cpp代码
#include <iostream>
int test(void) //一个程序只能有一个主函数
{
std::cout << "Hello World!\n";
return 0;
}
main.cpp代码
#include <iostream>
#include "func.h" //也就是说main.cpp依赖func.h
int main(void)
{
test();
std::cout << "OK! !\n";
return 0;
}
func.h代码
#ifndef FUNC_H //目前还看不懂
#define FUNC_H
int test(void);
#endif
打开cmd
输入 nmake
此时很可能会出现fatal error的情况,参考:
https://blog.csdn.net/weixin_41115751/article/details/89817123
编译成功可以看到生成了一个sinley.exe文件
接下来输入sinley.exe
最后输出结果