共享库的动态链接或动态加载?

时间:2016-07-07 12:32:13

标签: c++ c linux

在我的情况下,我无法知道将模块链接到二进制文件的最佳解决方案。通过动态链接或动态加载DL API。

知道:

  1. 我们可以为编译指定一个标志,指示是否要使用库的功能进行链接(例如,我们可以执行#ifndef MODULE)。
  2. 库函数在运行时只使用一次。
  3. 如果需要其他信息,请不要犹豫。

1 个答案:

答案 0 :(得分:0)

你最好的答案是"它取决于"。

例如,如果您的平台有大量可用内存,那么在执行之前加载所有外部库是有意义的。

如果在开始时将所有库加载到内存中需要花费大量时间,则可能需要根据需要将库加载到内存中。

如果平台没有大量内存,则按需加载更有意义(不要加载不经常使用的库并保留在内存中)。

在打包到DLL之前,您可能需要考虑函数使用频率。