驚豔的Open WATCOM C/C++

成立於1981年的WATCOM公司於1988年推出PC版的C語言編譯器,或許是專心研究的緣故, Watcom C/C++是以在DOS下可以產生最佳化程序代碼聞名於世的,許多寫遊戲和DOS Extender的廠商都指名要使用Watcom C/C++,由於不管是Borland C/C++仍是Visual C/C++,它們產生的最佳化程序代碼都比Watcom C/C++的最佳化程序代碼差上一截。再加上當時最有名的DOS Extender廠商PharLap公司也是使用Watcom C/C++,所以Watcom C/C++在專業的C/C++程序員以及系統程序員心中是第一品牌的C/C++開發工具。 ios

    然而,慘烈的C/C++編譯器四國聖戰,WATCOM C++還有Symantec C/C++,Broland C/C++最終不敵Microsoft C/C++,(這並非因爲編譯器的緣由,箇中起因,你們能夠去看一下臺灣著名程序員 李維的《C/C++ 聖戰》。)賣掉的賣掉,轉行的轉行,現在,Symantec 早就不搞C/C++了,諾頓就是Symantec的品牌,WATCOM被Sybase收購後,開發了Optima++,聽說當時看來是很是不錯的開發工具,可以直接拖拽控件,當時Sybase終究不是個有眼光的公司,1.5開發後就放棄了,固然這時期的編譯器仍是叫WATCOM,直到1999前年,WATCOM陸陸續續的發佈了一系列版本,可是到了1999年,Sybase結束了WATCOM的商業開發,於2000年開源了WATCOM ,2009年版本爲Open WATCOM 1.9,Open WATCOM的版本更新間隔不定,有1年的,也有兩年的,如今從每日構建能夠發現,版本已經到了2.0Beta1,相信今年可能會2.0正式版會出來,每日構建FTP地址:ftp://ftp.openwatcom.org/source/ 還有其餘版本源碼,也能夠本身下載1.9的二進制:ftp://ftp.openwatcom.org/ 每日構建2.0Beta1:http://pan.baidu.com/netdisk/singlepublic?fid=62546_17751838 這個是我4.7號編譯的。 程序員

Open WatCom現在依然驚豔,前幾日,我利用不一樣的編譯器編譯了一個程序,代碼以下: shell

#include<iostream>
#include<tchar.h>
#include<stdio.h>
#include<windows.h>
using namespace std;

int _tmain()

{
   cout<<"HelloWorld!"<<endl;
   MessageBox(NULL,_T("WTCOM編譯器測試-----2012.03.30 00:50"),_T("WTCOM C\\C++ Compiler"),MB_OK);
   system("pause");
   
   return 0;

}

使用的編譯器有MinGW/GCC,Microsoft C/C++ (VS版本 2008,2010,11Beta),Broland C++,RAD C++(Broaland C/C++的後代)。編譯都是使用的批處理環境,Microsoft C/C++ 還要連接kernel32.lib user32.lib gdi32.lib三個靜態連接庫(有MessageBox()函數。) windows

::OPEN WATCOM
@echo off
echo Open Watcom Build Environment
SET PATH=D:\WATCOM\BINNT;%PATH%
SET INCLUDE=D:\WATCOM\H\NT;%INCLUDE%
SET INCLUDE=%INCLUDE%;D:\WATCOM\H\NT\DIRECTX
SET INCLUDE=%INCLUDE%;D:\WATCOM\H\NT\DDK
SET INCLUDE=D:\WATCOM\H;%INCLUDE%
SET WATCOM=D:\WATCOM
SET EDPATH=D:\WATCOM\EDDAT
SET WHTMLHELP=D:\WATCOM\BINNT\HELP
SET WIPFC=D:\WATCOM\WIPFC
::Broland C/C++
::@echo off
@echo Start Borland C\C++ Compiler;
@set BCCDir=D:\Borland\BCC55
@set PATH=%BCCDir%\BIN;%PATH%
@set INCLUDE=%BCCDir%\Include;%BCCDir%\Include\Gl;%BCCDir%\Include\Rw;%BCCDir%\Include\Sys;%INCLUDE%
@set LIB=%BCCDir%\Lib;%BCCDir%\Lib\PSDK;%LIB%
GCC 有專業工具,MSVC和RAD C++也有官方的批處理,

數據,沒有運行時間測試: 函數

Broland.exe 基於 Broland C++ v5.5.1   115KB / 2996KB 工具

RAD_Broland.exe 基於RAD——C++ Builder v6.44  172KB /3028KB 開發工具

WatCom.exe 基於Open WatCom v13.0.0(1.9)   51KB /3024KB 測試

bg++.exe 基於GCC\g++ v4.6.1  51KB /3132KB ui

VS2008.exe 基於VC++ cl版本15  103KB /2908KB spa

VS2010.exe 基於VC++ cl版本16  105KB /2984KB

VS11.exe 基於VC++ cl版本17  117KB /2984KB

分別爲可執行程序體積和內存佔用大小

可見Broland的後代不是很好啊,GCC原本因爲衆人拾柴火焰高,一貫不錯,Microsoft的優點這還不阻力體現,畢竟沒有添加額外編譯選項,可是Open WATCOM 仍是表現不錯。給人一個耳目一新的感受。

我曾經下載了GCC 4.7源代碼,使用cygwin在Windows編譯,結果,編譯到Java編譯器的時候,沒法編譯了,4.6.3&4.7源碼都是如此,而Open WATCOM編譯新版本便很容易就成功了。

GCC是純粹的編譯器,而Open WATCOM是編譯器和IDE的集合,不過因爲開發力量不夠,支持較小,Open WATCOM的開發工具都顯得很醜陋,像來自遠古的人。

Clang很讓人失望,艱難的配置事實上很難讓人接受。

Open WATCOM 確實須要更多的支持,儘管它微不足道。可是它很驚豔,還有Sybase的開源許可證要更加寬容纔好。

相關文章
相關標籤/搜索