动态和静态链接

XL C/C++ 允许程序利用操作系统工具进行动态和静态链接。

动态链接意味着在程序首次运行时找到并装入某些外部例程的代码。当编译使用共享库的程序时,缺省情况下,共享库自动链接至程序。 如果多个程序使用共享库中的例程,那么动态链接的程序将占用较少的磁盘空间和虚拟内存。在链接期间,它们不需要任何特殊的预防措施来避免与库例程的命名冲突。如果几个程序同时使用相同的共享例程,那么它们的性能旨在超过静态链接的程序。通过使用动态链接,您可以升级共享库中的例程而不需要重新链接。

因为该链接形式是缺省值,所以您不需要其他选项来启用该链接。

静态链接意味着由程序调用的所有例程的代码成为可执行文件的一部分。

可以将静态链接的程序移至系统并在系统上运行它们,而不需要 XL C/C++ 运行时库。如果它们执行许多对库例程的调用或调用许多小例程,那么它们的性能可能超过动态链接的程序。如果您要避免与库例程产生命名冲突,那么在为程序中的数据对象和例程选择名称时它们确实需要一些预防措施。如果分别在不同级别的操作系统编译和运行它们,那么它们也可能不生效。