如果我们有很多库的源代码,为什么我们要尝试链接第三方库呢?

Why do we try to link third party libraries if we have source code of many of libraries available online

本文关键字:链接 我们 第三方 为什么 我们有 源代码 如果      更新时间:2023-10-16

我在Stack Overflow上看到了很多问题,比如"如何在Visual Studio中包含curlpp等?"

如果我们在网上有这些库的代码,当人们可以直接将代码添加到他们的项目中时,为什么要显式地使用.lib文件来包含到他们的项目中?

和我试图实现上述的事情为curlpp,但我没有成功,得到这么多链接器错误。有人能建议如何直接集成开源代码,我想这样做,即使这种方法有缺点吗?你能告诉我一些博客文章或步骤来实现这一点吗?这种方法的缺点是什么?

Edit:如果我不处理大量代码,编译可能不是一个有效的原因。从用户的角度来看,您仍然必须分发项目使用的二进制文件。除了编译因素,假设代码是开源的,没有许可问题,还有什么缺点呢?

我的主要问题是知道如何直接集成这样的第三方代码。

谢谢所有的缺点,但我正在尝试,所以你能指导我如何做到这一点吗?

原因有很多。从开发人员端:

  • 你不想编译很多东西,如果你已经被别人编译过了
  • 你不希望每次第三方开发人员更新源代码时都下载源代码并一遍又一遍地编译它们
  • 你不希望你的二进制文件比他们需要的大
  • GPL链接例外和其他可能的许可问题

用户端:

  • 你不希望同一个库被硬编码为到几个不同的程序二进制文件中(这会浪费磁盘和内存)

库还有助于:我组件化。2解耦API与实现。

您还需要考虑管理单个代码的成本。如果您要将库的源代码包含到项目中,那么定义良好的API边界将随着时间的推移而逐渐消失。