我知道 .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/