Oracle® Developer Studio 12.5:C++ 用户指南

退出打印视图

更新时间: 2016 年 7 月
 
 

11.4 使用类库

通常,使用类库分两个步骤:

  1. 在源码中包括适当的头文件。

  2. 将程序与对象库链接。

11.4.1 iostream

C++ 编译器提供两种 iostream 实现:

  • 传统 iostream。该术语指的是 C++ 4.0、4.0.1、4.1 和 4.2 编译器所附带的 iostream 库,以及基于 cfront 的 3.0.1 编译器附带的更早的 iostream 库。没有用于此库的标准。它在 libiostream 中可用。

  • 标准 iostream。这是所使用的标准 C++ 库版本的一部分-libCstdlibstlportlibstdcxxg++ 运行时库。iostream 的标准版本与传统 iostream 库的二进制和全部源代码都不兼容。

如果已有 C++ 源,那么代码可能象以下示例一样使用传统 iostream。

// file prog1.cc
#include <iostream.h>

int main() {
    cout << "Hello, world!" << endl;
    return 0;
}

以下示例使用了标准 iostream。

// file prog2.cc
#include <iostream>

int main() {
    std::cout << "Hello, world!" << std::endl;
    return 0;
}

以下命令编译 prog2.cc 并将其链接到名为 prog2 的可执行程序中。该程序在 -compat=5 模式下编译。缺省情况下,链接包括标准 iostream 库的 libCstd

example% CC -compat=5 prog2.cc -o prog2

11.4.1.1 有关传统 iostream 的说明

所谓的“传统”iostream 是指 iostream 的初始 1986 版本,已被 C++ 标准替代。它可通过 -library=iostream 选项选择。没有两个“传统”iostream 的实现是相同的,因此除了已过时之外,使用它的代码还不可移植。请注意,该库和选项在以后的 Oracle Developer Studio 发行版中将停止使用。

11.4.2 链接 C++ 库

下表显示了用于链接 C++ 库的编译器选项。有关更多信息,请参见–library=l[,l...]

表 24  链接 C++ 库的编译器选项
选项
传统 iostream
-library=iostream
垃圾收集
-library=gc
STLport 版本 4
-library=stlport4
STLport 版本 4 调试
-library=stlport4_dbg
Apache stdcxx 版本 4
-library=stdcxx4
Sun 性能库
-library=sunperf

注 - -std=c++03-std=c++11-std=c++14 模式下,只能添加 gcsunperf 库。没有用于不同版本的 C++ 标准库的选项。