惊艳的Open WATCOM C/C++

好久不见. 提交于 2019-12-03 08:46:48

成立于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++开发工具。

    然而,惨烈的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如今依然惊艳,前几日,我利用不同的编译器编译了一个程序,代码如下:

#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()函数。)

::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

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

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的开源许可证要更加宽容才好。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!