共享库的动态链接或动态加载?
问题描述:
我不知道哪种解决方案最适合将模块链接到二进制文件。通过动态链接或通过DL API动态加载。共享库的动态链接或动态加载?
知道了:
- 我们可以指定指示是否要使用或不图书馆的功能链接(我们可以做,例如的#ifndef MODULE)汇编的标志。
- 库函数在运行时仅使用一次。
如果需要更多信息,请不要犹豫。
答
你最好的答案是“这取决于”。
例如,如果您的平台有大量可用内存,则在执行之前加载所有外部库是有意义的。
如果在开始时将所有库加载到内存中需要很长时间,您可能需要将库加载到内存中。
如果平台没有很多内存,按需加载更有意义(不要加载不常使用的库并保留在内存中)。
在封装到DLL之前,您可能需要考虑函数使用的频率。
只有您的程序可以在没有库的情况下运行,动态加载才有意义。 – Siguza
库函数是否仅在程序的开始时使用?例如,您可以将库函数作为可执行文件运行,然后使用'exec()'替换进程来运行主应用程序(以params的形式向您提供相关信息)? – Galik
太宽泛。试着张贴一个例子,并指定_best_的含义:根据什么? – LPs