据我了解,当 C 程序使用动态链接时,程序的编译版本 (.exe) 会将库的内存地址存储在某处。那当程序安装到别人的电脑上时,库的位置是不是不一样呢?或者,当你更新库时,它的内存地址不会不同吗?
最佳答案
C 和 C++ 都没有指定它是如何工作的。对于不同的操作系统和exe格式是不同的。要了解具体细节,您需要了解您的实现方式。
对您的问题的简短回答是,操作系统设置了您的程序运行的环境。它必须将程序附加到正确的位置,或者至少通知它。通常你启动你的程序,格式告诉操作系统它应该加载哪些库,然后它以某种方式链接地址。
通常也有一种方法可以手动执行此操作,并直接请求在运行时加载库。但在这些情况下可能不会发生调用的自动链接。
关于c++ - 在动态链接中,.exe更新时如何知道去哪里搜索库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45220416/