如果我们有很多库的源代码,为什么我们要尝试链接第三方库呢?
Why do we try to link third party libraries if we have source code of many of libraries available online
我在Stack Overflow上看到了很多问题,比如"如何在Visual Studio中包含curlpp等?"
如果我们在网上有这些库的代码,当人们可以直接将代码添加到他们的项目中时,为什么要显式地使用.lib
文件来包含到他们的项目中?
和我试图实现上述的事情为curlpp,但我没有成功,得到这么多链接器错误。有人能建议如何直接集成开源代码,我想这样做,即使这种方法有缺点吗?你能告诉我一些博客文章或步骤来实现这一点吗?这种方法的缺点是什么?
Edit:如果我不处理大量代码,编译可能不是一个有效的原因。从用户的角度来看,您仍然必须分发项目使用的二进制文件。除了编译因素,假设代码是开源的,没有许可问题,还有什么缺点呢?
我的主要问题是知道如何直接集成这样的第三方代码。
谢谢所有的缺点,但我正在尝试,所以你能指导我如何做到这一点吗?
原因有很多。从开发人员端:
- 你不想编译很多东西,如果你已经被别人编译过了
- 你不希望每次第三方开发人员更新源代码时都下载源代码并一遍又一遍地编译它们
- 你不希望你的二进制文件比他们需要的大
- GPL链接例外和其他可能的许可问题
用户端:
- 你不希望同一个库被硬编码为到几个不同的程序二进制文件中(这会浪费磁盘和内存)
库还有助于:我组件化。2解耦API与实现。
您还需要考虑管理单个代码的成本。如果您要将库的源代码包含到项目中,那么定义良好的API边界将随着时间的推移而逐渐消失。
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- CMake-按正确顺序将项目与C运行时对象文件链接
- 从链接列表c++中删除一个项目
- 有根的二进制搜索树.保留与其父级的链接
- 读取文件的最后一行并输入到链接列表时出错
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 为什么我们不编写可以处理C++标识符的汇编器和链接器?
- 为什么我们需要在链接列表链接之前填写数据?
- 如果我们不创建一个新节点并使用指针插入数据并建立链接(在链表中)怎么办?
- 在C++中,我们如何将插入运算符和其他运算符链接在一起
- 我们如何显示链接列表
- 我们可以在链接期间加载动态库吗
- 我们可以动态链接编译的静态库吗?
- 为什么我们需要分别编译和链接
- 我们可以动态链接 DLL 的不同方法是什么
- 哪一个更快,为什么?1.阵列2.链接列表.如果我们只想在for循环中迭代并打印它
- 为什么我们需要链接kernel32.dll, user32.dll等.在Windows c++中
- 如果我们有很多库的源代码,为什么我们要尝试链接第三方库呢?
- 当我们把类的定义放在头文件中时,为什么链接成功了?
- 当我们链接同一库的不同版本时会发生什么?