windows下的dllexport

79 阅读1分钟

之前一直是在Linux搞开发,最近换到windows下,在Visual Studio里面配置的时候发现一个问题。

不知道怎么设置用静态库和动态库

这个问题具体描述的话:

  1. 为什么输入 里面在调用一些第三方库,比如opencv时候,明明打算调用的是dll,动态库。但是还是需要在输入里面写上lib。
  2. 为什么Windows下编译库往往需要设置 __declspec(dllexport)。

测试发现:

  1. 没有dllexport,选择配置文件是静态库(.lib) image.png

  2. 没有dllexport,选择配置文件是动态库(.dll) image.png

  3. 有dllexport,选择配置文件是动态库(.dll)

image.png

所以,如果想用静态库,就直接使用第一种就行。要用动态库的话,就用第三种。


ps: 为什么不能直接用dll呢?还是说能用,我没注意到使用方法?