成立於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的開源許可證要更加寬容纔好。