如题,动态链接的时候根本就不会把动态链接库(.lib/.so文件)引入程序。那么为什么我们动态编译的时候需要给出动态链接库的路径呢?
动态链接的地址是在运行时确定的,因此编译连接阶段不需要用到动态链接库中函数的地址。之所以需要在编译连接阶段引入动态链接库,主要是为了确定要连接的符号名,这样才能在运行时根据符号名找到对应的函数入口。
编译的时候你可以连动态库都没有,但是运行的时候程序会因找不到动态库而挂掉的。
我们总要知道调用的函数地址在哪吧。
2 回答1.7k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
1 回答933 阅读
1 回答1.1k 阅读
2 回答1.1k 阅读
动态链接的地址是在运行时确定的,因此编译连接阶段不需要用到动态链接库中函数的地址。之所以需要在编译连接阶段引入动态链接库,主要是为了确定要连接的符号名,这样才能在运行时根据符号名找到对应的函数入口。