c++ - 将 C++ 代码部署到 Github 期间的 .lib 和 .dll

标签 c++ dll

我知道 .lib 是静态库链接而 .dll 是动态的。这意味着当生成 .exe 时,.lib 不需要为 .exe 工作而存在。但是,.dll 需要放在正确的相对路径中,以便.exe 引用和运行。

我的问题是关于 .lib 的。将源代码上传到 Github 时,我是否也将 .lib 文件包含在项目文件夹中?这样做的最佳做法是什么?

大多数介绍如何安装库的教程都让我们将 .lib 文件链接到其原始文件夹,并将 .dll 文件移动到工作项目文件夹中。那么我是否也应该将 .lib 文件移动到我的项目文件夹中?如果我不这样做,那意味着下载我的源代码的人必须去找相应的 .lib 文件进行链接和编译,对吗?

最佳答案

我自己的“恕我直言”答案是:“GitHub 关注代码。”因此,我不建议包含二进制.lib 文件在那里。而且,我可能也不会将二进制 .dll 文件放在那里。

弄清楚两个文件的区别...

.lib 文件是一个目标代码库,由以前的编译产生,现在可以被链接器引用。链接器将选择它需要的任何内容,然后将这些项目从库中复制到它当时可能正在构建的任何内容中。

.dll 是一个动态 库...“动态”是指应用程序(以及其他 DLL ... ) 可以在运行时加载和卸载它。 (Windows 程序启动器还会自动加载它正在启动的任何内容直接或间接引用的任何 DLL。)

.dll 是“全有或全无”。您可以在运行时完整加载它们。相比之下,.lib 是真正的,仅供链接器使用。

=== 编辑下一个答案,恕我直言,“搞定了。”

关于c++ - 将 C++ 代码部署到 Github 期间的 .lib 和 .dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38087337/

相关文章:

C++实时策略模式处理不同数据

java - 设置jar文件中dll的库路径

c++ - 依赖行者 : Error Opening File

dll - 来自命令行的汇编版本?

delphi - 测试 Delphi DLL 导致 VB6 IDE 崩溃

c++ - 什么数据结构可以在 O(log n) 时间内找到给定范围内的元素数量?

c++ - 如何使用 CMake 配置 DBus 依赖项

c++ - 使用带有 clang 的初始化列表初始化简单结构

c++ - 限制一组内的字符串长度?

c# - 将带有非托管导出的 C# DLL 中的字符串返回到 Inno Setup 脚本