在源码中包括适当的头文件。
将程序与目标库链接。
传统 iostream。该术语是指 C++ 4.0、4.0.1、4.1 和 4.2 编译器以及早期基于 cfront 的 3.0.1 编译器附带的 iostream 库。该库没有任何标准,只是很多现有代码使用它。在兼容模式下,该库是 libC 的一部分,在标准模式下,libiostream 中也有该库。
标准 iostream。这是 C++ 标准库 libCstd 的一部分,仅用于标准模式下。该库与传统 iostream 库的二进制和源码都不兼容。
如果已有 C++ 源,那么代码可能象以下示例一样使用传统 iostream。
// file prog1.cc
#include <iostream.h>
int main() {
cout << "Hello, world!" << endl;
return 0;
}
|
以下命令在兼容模式下编译 prog1.cc,并将其链接到名为 prog1 的可执行程序中。传统 iostream 库是 libC 的一部分,兼容模式下缺省链接该库。
example% CC -compat prog1.cc -o prog1 |
下一个示例使用标准 iostream。
// file prog2.cc
#include <iostream>
int main() {
std::cout << "Hello, world!" << std::endl;
return 0;
}
|
以下命令编译 prog2.cc 并将其链接到名为 prog2 的可执行程序中。该程序在标准模式下编译,且缺省链接包括标准 iostream 库的 libCstd。
example% CC prog2.cc -o prog2 |
有关 libCstd 的更多信息,请参见忠告:。有关 libiostream 的更多信息,请参见13.3.1 重新分发和支持的 STLport 库。
有关编译模式的完整讨论,请参见《C++ 迁移指南 》。
标准库提供了模板化的 complex 库,该库与 C++ 4.2 编译器提供的 complex 库类似。如果在标准模式下编译,必须使用 <complex> 而非 <complex.h>。不能在兼容模式下使用 <complex>。
在兼容模式下,必须在链接时显式请求 complex 库。在标准模式下,complex 库包括在 libCstd 中,缺省情况下链接该库。
标准模式下,没有 complex.h 头文件。在 C++ 4.2 中,"complex" 是类名称,但在标准 C++ 中,"complex" 是模板名称。不可能提供可使旧的代码不加修改就可工作的 typedef。因此,为使用复数的 4.2 版编写的代码需要某些简单的编辑,以便使用标准库。例如,以下代码是为 4.2 版编写的,并将在兼容模式下编译。
// file ex1.cc (compatibility mode)
#include <iostream.h>
#include <complex.h>
int main()
{
complex x(3,3), y(4,4);
complex z = x * y;
cout << "x=" << x << ", y=" << y << ", z=" << z << endl;
}
|
以下示例在兼容模式下编译并链接 ex1.cc,然后执行该程序。
example% CC -compat ex1.cc -library=complex example% a.out x=(3, 3), y=(4, 4), z=(0, 24) |
下面将 ex1.cc 重写为 ex2.cc 以在标准模式下编译:
// file ex2.cc (ex1.cc rewritten for standard mode)
#include <iostream>
#include <complex>
using std::complex;
int main()
{
complex<double> x(3,3), y(4,4);
complex<double> z = x * y;
std::cout << "x=" << x << ", y=" << y << ", z=" << z <<
std::endl;
}
|
以下示例在标准模式下编译并链接重写的 ex2.cc,然后执行该程序。
% CC ex2.cc % a.out x=(3,3), y=(4,4), z=(0,24) |
关于使用复数运算库的更多信息,请参见表 14–4。
下表列出了链接 C++ 库的编译器选项。有关更多信息,请参见A.2.49 -library=l[ ,l...]。
表 12–2 链接 C++ 库的编译器选项|
库 |
编译模式 |
选项 |
|---|---|---|
|
–compat=5 |
不需要 -library=iostream |
|
|
complex |
–compat=4 -compat=5 |
-library=complex 不需要 |
|
–compat=4 –compat=5 |
-library=rwtools7 -library=rwtools7_std |
|
|
Tools.h++ 版本 7 调试 |
–compat=4 –compat=5 |
-library=rwtools7_dbg -library=rwtools7_dbg,iostream -library=rwtools7_std_dbg |
|
–compat=4 –compat=5 |
-library=gc -library=gc |
|
|
STLport 版本 4 |
–compat=5 |
-library=stlport4 |
|
STLport 版本 4 调试 |
–compat=5 |
-library=stlport4_dbg |