说说c语言的编译器

c语言的编译器

  c语言的编译器,主流应用大致分为四类:
  1. 微软系: 代表vc++ ,有强大的visual studio ide,开发效率是直线向上的,缺点是不够跨平台,生成的可执行程序依赖组件很多.从visual studio 2015开始支持Linux远程调试,是个可喜可贺的事情,从上学的时候,就开始使用了.
  2. gnu系: 代表gcc ,gnu倡议自由软件,有点跨平台,跨cpu,支持主流各大系统,如Linux/Unix及Windows,在Windows上可以通过cywin和mingw使用gcc,生成的可执行程序依赖较少,在win10系统生成可执行的程序,在Windows server 2003一样可以完美的运行,这一样vc就不行了.
  3. clang系: 后期之秀,目标要代替gcc,有个好爹--苹果,在xcode使用的就是.
  4. 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