Oracle Solaris Studio 12.2:C++ 用户指南

15.7 生成具有 C API 的库

如果要生成以 C++ 编写但可用于 C 程序的库,必须创建 C API(application programming interface,应用程序编程接口)。为此,应先使所有导出的函数为 extern "C"。注意,只有在全局函数中才能够完成该操作,在成员函数中不行。

如果 C 接口库需要 C++ 运行时支持,且要使用 cc 进行链接,则在使用 C 接口库时,还必须用 libC(兼容模式)或 libCrun(标准模式)链接应用程序。(如果 C 接口库不需要 C++ 运行时支持,就不必用 libClibCrun 进行链接。)归档库与共享库的链接步骤是不同的。

提供归档的 C 接口库时,必须提供如何使用该库的说明。

提供共享的 C 接口库时,必须在生成库时创建对 libClibCrun 的依赖性。如果共享库具有正确的依赖性,就不必在使用该库时将 -lC-lCrun 添加到命令行。

如果要删除对 C++ 运行时库的任何依赖性 ,应该在库源文件中强制应用下列代码规则: