Visual Studio中的静态和动态链接

用户名

我了解静态和动态链接的概念。众所周知,在Windows平台上,.dll动态库和.lib静态库都是动态库。

我的困惑:我做了一个必须使用OpenCV库的项目。基本上,我必须使用以下5个OpenCV库:

-lopencv_core
-lopencv_highgui
-lopencv_imgcodecs
-lopencv_imgproc
-lopencv_videoio

为此,在项目的属性中,我必须告诉编译器Additional Library DirectoryVS 2012中的库的路径,还必须告诉链接.lib程序我要用于项目库。该项目已编译,没有任何错误。但是,当我尝试运行该项目时,它说该项目videoio.dll丢失了(其余库也有同样的错误)。一旦我将.dll文件复制到.exe存在该文件夹文件夹中,项目就可以正常运行。

问题:.dll当我已经链接静态库(.lib时,为什么必须复制文件

进一步的问题:当我在Mac OS或Linux上使用Eclipse时,我只需要告诉编译器OpenCV库在哪里以及链接器我要使用的其他OpenCV库。.exe在那种情况下,我不必将动态库放到该文件夹中。

尼尔

Windows“常规”工具链提供了两种“ .lib” .lib。

一种是您提到的静态库。使用时,没有关联的.dll。

另一个是剥离的库,仅可在其中挂接代码以在加载时加载和修复动态库的函数指针。

使用动态库(.dll),您可以自行加载(通过LoadLibrary),也可以使用.dll附带的存根(导入).lib。支持import .lib(如果提供的话)。

当我已经链接静态库(.lib)时,为什么必须复制.dll文件?

.dll必须位于路径或包含.exe的目录中,以便加载程序可以找到它。


如何区分.lib文件是静态库还是动态库?

通常,文档应包括有关此方面的某种程度的详细信息。如果它们集中在同一文件夹中,那么我将假定.lib与.dll绑定在一起。如果所有其他方法均失败,请查看文件大小;如果.lib绑定到.dll,则与.dll相比,它通常很小。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Visual Studio中静态链接ffmpeg库

来自分类Dev

使用Visual Studio 2012的静态链接msvcrt中的异常

来自分类Dev

将Libtorrent与Visual Studio静态链接

来自分类Dev

使用Visual Studio 14静态链接Lua

来自分类Dev

Visual Studio:项目参考与链接静态库

来自分类Dev

将Libtorrent与Visual Studio静态链接

来自分类Dev

Fortran和C ++:Visual Studio中的链接错误

来自分类Dev

Qt 5.4静态生成在Visual Studio 2013中产生“无法解析的外部符号”链接错误

来自分类Dev

尝试在Visual Studio 2013中引用静态库项目时出现链接器错误

来自分类Dev

Visual Studio 2017 无法检查来自静态链接库的对象中的 STL 容器

来自分类Dev

Visual Studio扩展中的静态数据

来自分类Dev

Visual Studio中的静态库与DLL

来自分类Dev

Visual Studio扩展中的静态数据

来自分类Dev

在Visual Studio 2012上的静态ZLIB(1.2.8)链接

来自分类Dev

Visual Studio C ++静态链接该怎么办

来自分类Dev

SFML静态与动态库加载。Visual Studio如何指定呢?

来自分类Dev

如何从Visual C ++的.obj文件构建静态和动态库?

来自分类Dev

Visual Studio Code中的引用样式链接

来自分类Dev

在Visual Studio中链接库

来自分类Dev

在Visual Studio 2010中使用PCL和OpenCV进行静态构建

来自分类Dev

在Visual Studio 2010中使用PCL和OpenCV进行静态构建

来自分类Dev

如何使用Visual D链接到静态库中的包

来自分类Dev

如何更改静态链接库中的const字符串数组的Visual Studio C ++初始化序列

来自分类Dev

在Visual Studio 2012中,库管理器和链接器有什么区别?

来自分类Dev

如何在Visual Studio Code的母版页中列出和编辑链接的js / css文件?

来自分类Dev

(Visual Studio)尝试将Microsoft库与SFML库静态链接时出现很多链接器错误

来自分类Dev

如何在Visual Studio中的静态库中隐藏类

来自分类Dev

编译和链接项目时,Visual Studio 2015挂起

来自分类Dev

C ++类和朋友Visual Studio链接错误

Related 相关文章

  1. 1

    在Visual Studio中静态链接ffmpeg库

  2. 2

    使用Visual Studio 2012的静态链接msvcrt中的异常

  3. 3

    将Libtorrent与Visual Studio静态链接

  4. 4

    使用Visual Studio 14静态链接Lua

  5. 5

    Visual Studio:项目参考与链接静态库

  6. 6

    将Libtorrent与Visual Studio静态链接

  7. 7

    Fortran和C ++:Visual Studio中的链接错误

  8. 8

    Qt 5.4静态生成在Visual Studio 2013中产生“无法解析的外部符号”链接错误

  9. 9

    尝试在Visual Studio 2013中引用静态库项目时出现链接器错误

  10. 10

    Visual Studio 2017 无法检查来自静态链接库的对象中的 STL 容器

  11. 11

    Visual Studio扩展中的静态数据

  12. 12

    Visual Studio中的静态库与DLL

  13. 13

    Visual Studio扩展中的静态数据

  14. 14

    在Visual Studio 2012上的静态ZLIB(1.2.8)链接

  15. 15

    Visual Studio C ++静态链接该怎么办

  16. 16

    SFML静态与动态库加载。Visual Studio如何指定呢?

  17. 17

    如何从Visual C ++的.obj文件构建静态和动态库?

  18. 18

    Visual Studio Code中的引用样式链接

  19. 19

    在Visual Studio中链接库

  20. 20

    在Visual Studio 2010中使用PCL和OpenCV进行静态构建

  21. 21

    在Visual Studio 2010中使用PCL和OpenCV进行静态构建

  22. 22

    如何使用Visual D链接到静态库中的包

  23. 23

    如何更改静态链接库中的const字符串数组的Visual Studio C ++初始化序列

  24. 24

    在Visual Studio 2012中,库管理器和链接器有什么区别?

  25. 25

    如何在Visual Studio Code的母版页中列出和编辑链接的js / css文件?

  26. 26

    (Visual Studio)尝试将Microsoft库与SFML库静态链接时出现很多链接器错误

  27. 27

    如何在Visual Studio中的静态库中隐藏类

  28. 28

    编译和链接项目时,Visual Studio 2015挂起

  29. 29

    C ++类和朋友Visual Studio链接错误

热门标签

归档