静态链接库lib和动态链接库dll
参考文章(https://blog.csdn.net/u012999985/article/details/50429715)
静态链接库lib
静态链接库为源文件编译好的库文件,调用方法有两种:
- 链接器中加入。
- 源代码中加入:
#pragma comment(lib, "hello.lib")
动态链接库dll
区别
- lib在编译的时候用到,编译完成后exe可以直接运行;dll在运行exe时用到,没有dll则exe无法运行。
- 有dll则编译一定需要lib,但是有lib不一定有dll。
错误记录
- 错误:使用handle = dlopen(fn, RTLD_NOW|RTLD_LOCAL)加载rc.dll时,返回值为NULL,错误原因应该是rc.dll中和cl相关的函数无法解析。
解决方法:之前链接的是原工程make出的rc.dll,在vs中重新生成解决方案,产生新的rc.dll即可解决此问题。 - 错误:生成encode-x265.dll时报错fatal error LNK1120: 1 个无法解析的外部命令,报错函数为diffclock,在utill.h中定义。
解决方法:未找到实际错误原因,直接将diffclock函数定义放入encode-x265.cpp中。