文档信息
前言
第 1 部分C++ 编译器
1. C++ 编译器
2. 使用 C++ 编译器
3. 使用 C++ 编译器选项
第 2 部分编写 C++ 程序
4. 语言扩展
5. 程序组织
6. 创建和使用模板
7. 编译模板
8. 异常处理
9. 改善程序性能
10. 生成多线程程序
第 3 部分库
11. 使用库
12. 使用 C++ 标准库
13. 使用传统 iostream 库
14. 生成库
14.1 了解库
14.2 生成静态(归档)库
14.3 生成动态(共享)库
14.4 生成包含异常的共享库
14.5 生成专用的库
14.6 生成公用的库
14.7 生成具有 C API 的库
14.8 使用 dlopen 从 C 程序访问 C++ 库
第 4 部分附录
A. C++ 编译器选项
B. Pragma
词汇表
索引
如果要使用 dlopen() 从 C 程序打开 C++ 共享库,应确保共享库依赖于适当的 C++ 运行时(对于 -compat=5,为 libCrun.so.1)。
为此,对于 -compat=5,在生成共享库时,应将 -lCrun 添加到命令行。例如:
example% CC -G -compat=5... -lCrun
如果共享库使用了异常且不具有对 C++ 运行库的依赖性,则 C 程序可能会出现无规律的行为。