一、应用程序分类
分为4类:控制台程序、窗口程序、动态库程序、静态库程序。
1.控制台程序
就是那个黑色的控制台,入口函数为main()
编译链接后生成exe文件
2.窗口程序
就是我们使用的应用程序,入口函数为WinMain()
编译链接后生成exe文件
3.动态库程序
入口函数为DllMain()
编译链接后生成dll文件,不能独立执行,需要依附其它程序才能执行
4.静态库程序
无入口函数
编译链接后生成lib文件
二、开发工具
linux使用gcc,gcc完成编译和链接工作;
Window的编译和链接分开完成,有2个不同工具,以Visual Studio为例,cl.exe——编译器、link.exe——链接器,平时在VS的IDE中,我们点击三角按钮是同时完成编译和链接的
1.编译工具
编译器:cl.exe,编译c、cpp后缀文件,生成obj文件
链接器:link.exe,链接obj、res、lib等文件,生成exe文件
资源编译器:rc.exe,编译rc后缀文件,生成res文件
2.使用记事本、命令行完成编译和链接
先配置编译环境
找到vcvars32.bat、vcvars64.bat、vcvarsall.bat所在目录,我的在C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build下;
在该目录下打开cmd命令行,执行vcvars32.bat(我想配置32环境),看到如下结果则配置成功
编译链接程序
使用cl.exe编译
使用link.exe链接
cmd转到想要编译的c、cpp文件所在目录
输入编译命令:
cl.exe xxx.c -c
最后会生成obj文件
输入链接命令:
link.exe xxx.obj xxx.lib
最后会生成exe文件