首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Newlib:嵌入式与桌面

Newlib:嵌入式与桌面
EN

Stack Overflow用户
提问于 2017-10-31 05:54:24
回答 1查看 657关注 0票数 2

我正在为一个玩具项目编译一个基于Newlib的Linux工具链。

Newlib的官方页面报告:

Newlib是一个用于嵌入式系统的C库。

但没有提供任何特定的理由。

我想弄清楚的是:

  1. 为什么newlib认为自己是嵌入的“唯一”呢?
  2. 在桌面或服务器环境中使用它有哪些缺点?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-31 06:53:38

与Glibc不同的是,Glibc有非常特定的代码,以确保它在以后的API兼容版本中是可替换的,Newlib不是这样;它也不支持动态链接。。而且,在桌面环境中,在每个可能的可执行文件中静态地链接C库也没有多大意义。因此,Newlib主要适用于具有少量静态链接可执行文件的嵌入式目标。

Newlib还只完成C标准库的部分和POSIX C库扩展的最小部分。具体来说,它与联网完全无关。如果任何一个头脑正常的人想要在2017年建立一个没有任何网络的桌面系统,这是有争议的。

另外要注意的是许可证的非技术方面。Glibc使用LGPL许可证,它确实允许针对专有程序进行链接,只要用户能够用另一个LGPL许可库替换(注意,IANAL)。实际上,这意味着库可以动态链接到库中,或者在静态链接库的情况下,用户可以使用对象文件来链接替换库以生成可执行文件。这意味着许可证本身可能不适用于拥有专有软件的小型嵌入式系统。Newlib 不包含任何LGPL代码,除非它是为Linux目标构建的。.

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47028724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档