Windows下各种C/C++ 编译方法及对比
以下是介绍给大家,在Windows中使用c/c++编译器
我个人简单汇编了一些,把一些c放在一起对比
vc bc5 gcc .net
我这里有已经打包好的简洁的全部环境包
首先我们写两个简单的通用的程序
test.c
#include <stdio.h>
int main(int argc,char *argv[])
{
printf("\nTest\n");
return 0;
}
保存
这个是console的
wintest.c
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
{
MessageBox(NULL,"欢迎使用 C for Windows 学习","第一个Windows程序",MB_OK);
return 0;
}
保存
这个是windows程序
cswin.cs
using System;
using System.Windows.Forms;
using System.Drawing;
public class MyForm:Form
{
public MyForm()
{
this.Text = "Hello World";
}
}
public class Demo
{
public static void Main()
{
Application.Run(new MyForm());
}
}
保存
这个文件是用来.net编译的
sample.ico
图标文件
1.
visual c++ 简称vc ,微软的,很强大
我们这里介绍都是在命令行上使用,至于ide,就不说了
主要是为了编译方法,以下的都是这样
主要是PATH的搜索路径要保证
还有一些可以自己设定的环境变量
先有一个vc的环境,简单的环境要求是这样的
vc\Common
vc\VC98
这两个文件夹及内容要有
先设定PATH
如果方便可以自己定批处理
set vc_dir=%CD%\vc\vc98
set PATH=%PATH%;%vc_dir%\bin
set vc_lib=%vc_dir%\lib\*.lib
set vc_inc=%vc_dir%\include
这里的%CD%是你的当前目录了
这样设定后你输入cl
就可以看到编译信息了
下面就是在上面条件执行后,怎么编译
如果想要一个图标,那么先编辑一个rc文件
sample.rc
文件内容
A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "sample.ico"
保存
rc.exe sample.rc
cl.exe wintest.c sample.res /I %vc_inc% /link %vc_lib%
执行后就会有wintest.exe
你就可以用了
2.Borland C++ 5
这个和一般的C不一样
要求在BCC5\bin下有bcc32.cfg ilink32.cfg
这里编译一个批处理bcc5path.bat
set PATH=%CD%\bin
if exist bcc32.cfg del bcc32.cfg
echo -I"%CD%\include">>bcc32.cfg
echo -L"%CD%\lib">>bcc32.cfg
move bcc32.cfg .\bin
if exist ilink32.cfg del ilink32.cfg
echo -L"%CD%\lib">>ilink32.cfg
move ilink32.cfg .\bin
存在BCC5目录中
执行后就有环境了
bcc32 test.c
这样就是编译的test.exe 就是console的程序了
要是windows的程序,要麻烦点
资源文件rc也和vc的不一样
sample.rc
内容
myico ICON sample.ico
保存
brcc32 sample.rc
bcc32 -W -c wintest.c
ilink32 -v wintest.obj import32.lib cw32.lib c0w32.obj /aa,,,,,sample.res
del wintest.obj wintest.ilc wintest.ild wintest.ilf wintest.ils wintest.map wintest.tds sample.res
wintest.exe 就是你要要的windows程序了
3.windows 下 gcc 编译程序
安装 mingw32
set gcc_home=%CD%\gcc
set PATH=%PATH%;%gcc_home%\bin
gcc -v
可以看到版本信息
gcc test.c -o test.exe
这就是终端console程序了
sample.rc 就和vc的rc文件一样
windres --input-format=rc -O coff -i sample.rc -o sample.res
gcc wintest.c sample.res -o wintest -mwindows
这样你就可以得到windows的wintest.exe程序
4. .net Framework\v2.0.50727 编译
C:
cd C:\WINDOWS\Microsoft.NET\
set framenet=%CD%\Framework
set PATH=%PATH%;%framenet%\v2.0.50727
保证csc.exe 可以执行
一般都在
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
编译cswin.cs
csc cstest.cs
csc /target:winexe /win32icon:sample.ico cswin.cs
这样就得到了cswin.exe 这个.net程序要有.net2.0环境才运行的