gpt4 book ai didi

c++ - 关于 .lib 文件、.dll 文件、后期绑定(bind)、嵌入式应用程序的基本问题?

转载 作者:太空宇宙 更新时间:2023-11-03 22:01:38 24 4
gpt4 key购买 nike

在过去的 4 个月里,我开始使用 OpenCV 和 OpenSceneGraph 等第 3 方库,我有一些基本问题...

1.) 当我们使用任何函数时,我们在程序中提到的 lib 文件(包含函数)(例如 -lcv.lib、-lhighgui.lib)会依次调用在 bin 中找到的相应 .dll 文件文件夹?此调用是否在运行时发生?

2.)使用 CMAKE、MAKE 和 Visual Studio 解决方案文件从源代码静态构建和动态构建 lib 文件和 dll 文件有什么区别?

3.) 使用 .dll 的好处仅仅是为了减小可执行代码的大小吗?

4.)在嵌入式视觉应用程序(或任何使用库的嵌入式应用程序)中,整个可执行代码是否转储到处理器/ Controller /芯片中?嵌入式应用程序中是否有任何后期绑定(bind)或运行时调用的概念?

请对这些问题给出一些见解,以便我能够理解我使用的代码内部发生了什么......提前谢谢......

最佳答案

1.) when we use any function does the lib files (containing the function) which we mention (e.g. -lcv.lib , -lhighgui.lib) in our program in turn call the respective .dll files found in the bin folder?does this call take place at runtime?

是的,库仅包含链接器能够解析您的 exe 中指定函数的信息。实际代码在运行时加载。

2.)whats the difference between static build and dynamic build of the lib files and dll files from the source code using CMAKE,MAKE and Visual Studio Solution files?

没有,visual studio 只是让它更方便(主观)。

3.)is the benefit of using .dll only to reduce the size of the executable code?

可以(如果与以前的版本兼容,例如界面未更改)更改 dll 内容而无需重新创建 exe。

也可以稍后延迟加载库(即不与 .lib 文件链接,而是使用 LoadLibrary/GetProcAddress),因此可以在 dll 中具有可选功能,如果它存在,但仍然能够如果未找到 dll,则运行。

4.)in embedded vision applications (or any embedded application using libraries) is the whole executable code dumped in the processor/controller/chip?is there any concept of late binding or runtime call in embedded applications?

这取决于操作系统,通常(至少在我目前参与的嵌入式项目中)使用静态库,因为嵌入式设备上的操作系统不支持共享库。如果操作系统支持,那么很好,但嵌入式设备上的硬件/软件通常非常有限。

关于c++ - 关于 .lib 文件、.dll 文件、后期绑定(bind)、嵌入式应用程序的基本问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12075229/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com