说说c语言的编译器
c语言的编译器
c语言的编译器,主流应用大致分为四类:- 微软系: 代表vc++ ,有强大的visual studio ide,开发效率是直线向上的,缺点是不够跨平台,生成的可执行程序依赖组件很多.从visual studio 2015开始支持Linux远程调试,是个可喜可贺的事情,从上学的时候,就开始使用了.
- gnu系: 代表gcc ,gnu倡议自由软件,有点跨平台,跨cpu,支持主流各大系统,如Linux/Unix及Windows,在Windows上可以通过cywin和mingw使用gcc,生成的可执行程序依赖较少,在win10系统生成可执行的程序,在Windows server 2003一样可以完美的运行,这一样vc就不行了.
- clang系: 后期之秀,目标要代替gcc,有个好爹--苹果,在xcode使用的就是.
- intel系: 代表Intel C++ Compiler (简称 icc 或 icl),主要针对x86,做开发的应用不是很广,做优化的使用,当年的c++四大编译器之一,当年的Borland(宝兰)的c++ builder已经日落西山了
主要说说gcc和vc
测试代码(以窗体程序测试)
#include <windows.h>
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, TEXT("这是正文呢"), TEXT("这是标题"), 0);
return 0;
}
gcc 命令编译
gcc -o main.exe main.c -mwindows
在win10上进行编译,分别将main.exe可执行程序,拷贝到Windows server 2003,Windows 7(忘了截图,手头上win7的系统).都可以运行正常运行,效果图
vc 命令编译
//cl编译时,要链接 user32.lib
cl main.c /link user32.lib
因为原先是直接在vs2017生成,特别依赖windows sdk,从而在低版本或高版本的Windows系统都不可以运行.
秋风
2017-06-01