为什么c/c++开源库使用前需要编译

编程小白,如题,直接调用源码,最后一起编译不行吗... 编程小白,如题,直接调用源码,最后一起编译不行吗 展开
 我来答
GTA小鸡
高粉答主

2019-03-28 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部

这样可以运行,但有两个问题:

  1. 每个新程序要使用开源库中的api,都需要重新编译部分甚至整个开源库源代码,这会浪费大量的时间;

  2. 如果有多个程序同时使用同一个库,每个程序都将生成一份这个库的二进制文件,这会浪费大量的磁盘空间;当这些程序同时运行时,每个程序的内存中都会装载一份库的二进制代码,这会浪费大量的内存空间。

因此,直接将第三方库的源代码包含到当前程序的代码中编译是效率非常低下的方式,实际中除非极特殊情况,不会考虑使用这种方式,而是将开源库源代码编译成二进制的动态链接库,其他程序要使用其中的API时,只需要指定动态链接库的入口点,程序运行时加载动态链接库 并找到其中的函数入口点就可以调用开源库API。并且,当有多个程序调用此动态链接库时,只会占用一份内存空间。

追问
非常感谢!另外想问下非科班小白在学完cpp基础语法会写黑框程序后如何进阶呢(就比如您说的这些知识)(从devc++换到visualstudio感觉很迷茫)有推荐的系统的教材吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式