咨询培训 著译作品 关于荣耀 Bjarne Stroustrup 网络资源 浣石山房 在路上 联系 站内搜索 首页

著译作品

Borland C++ 5.5编译器命令行模式设定和用法

荣耀 2002

www.royaloo.com

在进行企业级软件开发时,没有强大的IDE协助是难以想像的。但在进行语言特性测试和学习时,一个命令行模式编译工具就足够。和IDE相比,命令行模式编译速度更快,你也很容易下载到免费的编译器和相关命令行工具。

本文将介绍Borland C++ 5.5编译器命令行模式设定和用法。从Borland站点下载来的文件名为freecommandLinetools.exe,大小为8.52M,包含有命令行工具、RTL和STL动态链接库、Windows SDK、例子文件和帮助文档等。

无需额外安装步骤,将此压缩文件解压至任意目录均可。我把它解压到e:\bcc中,生成如下目录和文件:
* Bin
* Examples
* Help
* Include
* Lib
* license.txt
* readme.txt

说明:下文描述的设定和用法,都是基于以上目录路径,假如你和我不一样,自己注意依样调整。

关于设置环境变量详细步骤,请参考《微软C/C++/C#编译器命令行模式设定和用法》中有关描述。假如你使用的是Windows95/98,可以在autoexec.bat里,加入PATH=E:\BCC\BIN;%PATH%,假如是Windows 2000/XP,请在环境变量PATH中加入E:\BCC\BIN。我机器上完整PATH设置为:

PATH=E:\WATCOM\BINW;F:\ORAHOME1\BIN;C:\PROGRAM FILES\ORACLE\JRE\1.1.7\BIN;E:\DELPHI\DELPHI5\PROJECTS\BPL;E:\DELPHI\VBROKER\JRE\BIN;E:\DELPHI\VBROKER\BIN;E:\DELPHI\DELPHI5\BIN;%SYSTEMROOT%\SYSTEM32;%SYSTEMROOT%;%SYSTEMROOT%\SYSTEM32\WBEM;C:\PROGRAM FILES\MICROSOFT SQL SERVER\80\TOOLS\BINN;F:\ORAHOME1\ORB\BIN;E:\DUBA;C:\PROGRAM FILES\ATI TECHNOLOGIES\ATI CONTROL PANEL;E:\BCC\BIN;E:\VS.NET\VC7\BIN;E:\VS.NET\COMMON7\IDE;E:\DMC\BIN\;E:\WATCOM\BINNT\;E:\DC\BIN\;E:\DC\LIB\GCC-LIB\MINGW32\3.2

现在就可以打开一个“命令提示符”窗口,执行bcc32命令,你将会看到编译选项完整列表(参见附录一)。让我们来编译C盘根目录下的示例文件:

//1.cpp
#include <iostream>
using namespace std;
int main()
{
    cout << "Hello Royal" << endl;
}

执行如下命令即可:

bcc32 -Ie:\bcc\include -Le:\bcc\lib 1.cpp

运行程序,输出如下:

Hello Royal

这个编译命令太麻烦,好在还有简便办法。在C盘根目录下,新建一个名为bcc32.cfg纯文本文件,写入如下内容:

-I"e:\bcc\include" -L"e:\bcc\lib"

现在就可以这样编译了:

bcc32 1.cpp

注意:这个配置文件可以放在被编译的源文件目录中(如上所述),更为一劳永逸的做法是放于D:\BCC55\BIN目录里(和编译器放在一起)。

下面是编译多个文件的例子:

//2.cpp
#include <iostream>
#include "3.cpp"
using namespace std;
int main()
{
    CTest ct("Hello www.royaloo.com");
    cout << ct.str << endl;
}

//3.cpp
#include <iostream>
using namespace std;
class CTest
{
public:
    CTest(string const & strValue): str(strValue){}
    string str;
};

执行如下编译命令:

bcc32 2.cpp 3.cpp

将生成名为2.exe的可执行文件。假如对这个名字不满意,可以使用-e编译选项,指定你想要的可执行文件名:

bcc32 -eHello 2.cpp 3.cpp

现在就生成了Hello.exe,运行该程序,如你所料,输出如下:

Hello www.royaloo.com

顺便提一句,不要将.h文件列在编译文件列表之中,列出包含了它的.cpp文件即可。

附录

-3     * 80386 Instructions
-4     80486 Instructions
-5     Pentium Instructions
-6     Pentium Pro Instructions
-Ax    Disable extensions
-B     Compile via assembly
-C     Allow nested comments
-Dxxx  Define macro
-Exxx  Alternate Assembler name
-Hxxx  Use pre compiled headers
-Ixxx  Include files directory
-K     Default char is unsigned
-Lxxx  Libraries directory
-M     Generate link map
-N     Check stack overflow
-Ox    Optimizations
-P     Force C++ compile
-R     Produce browser info
-RT    * Generate RTTI
-S     Produce assembly output
-Txxx  Set assembler option
-Uxxx  Undefine macro
-Vx    Virtual table control
-X     Suppress autodep. output
-aN    Align on N bytes
-b     * Treat enums as integers
-C     Compile only
-D     Merge duplicate strings
-exxx  Executable file name
-fxx   Floating point options
-gN    Stop after N warnings
-iN    Max. identifier length
-jN    Stop after N errors
-k     * Standard stack frame
-lx    Set linker option
-nxxx  Output file directory
-oxxx  Object file name
-p     Pascal calls
-tWxxx Create Windows app
-u     * Underscores on externs
-v     Source level debugging
-wxxx  Warning control
-xxxx  Exception handling
-y     Produce line number info
-zxxx  Set segment names

-完-