代码改变世界

glibc和musl libc的区别

  youxin  阅读(1040)  评论(0编辑  收藏  举报

++和gcc是GNU编译器集合中的两个组件,g++是GNU C++编译器,gcc是GNU C语言编译器。这两个编译器都使用glibc作为标准C库,glibc是GNU操作系统的标准C库,为支持C程序提供了许多函数和服务。

简单来说,glibc是C标准库的一个实现,它包括头文件、函数库和其他的应用程序。而g++和gcc则是编译器,它们将源代码编译成可执行文件,通过调用glibc库中的函数来执行程序。

当您使用g++编译C++代码时,它会链接到glibc库,并使用该库中的函数以进行内存分配、字符串处理等操作。同样,当您使用gcc编译C代码时,它也会链接到glibc库并使用标准C库中的函数。

因此,glibc库是与g++和gcc紧密相关的一部分,它为这些编译器提供了基本的C和C++支持,并为应用程序提供了一组丰富的函数库。

musl libc 和 glibc 都是 C 语言的标准库。它们的功能类似,都包括了很多常用的函数,如字符串处理、文件操作、进程控制等等。它们的主要区别在于实现方式和设计哲学。

musl libc 是一个轻量级的 C 标准库,它的设计目标是尽可能小而快,同时提供最高的代码质量和安全性。musl libc 的源代码通常较短,编译速度较快,没有额外的依赖,因此非常适用于嵌入式系统和轻量级应用程序。

相比之下,glibc 是一个较重的 C 标准库,它的设计目标是提供更广泛的功能和更高的兼容性。glibc 的源代码较长,编译速度较慢,有许多库文件和依赖项,因此通常用于桌面系统和服务器软件开发。

总的来说,musl libc 和 glibc 都是优秀的 C 标准库,但在不同的场景下选择合适的库对于开发者来说非常重要。

 

下载musl源码,网址:https://musl.libc.org/

配置/编译:

./configure && make

或者./configure --prefix=xxx  && make

cat > hello.c <<EOF
#include <stdio.h>
int main()
{
    printf("hello, world!\n");
    return 0;
}
EOF
  1. 执行指令编译源文件(前提配置了环境变量):
    musl-gcc hello.c

    得到可执行文件 a.out

  2. 运行可执行文件测试:
    ./a.out


原文链接:https://blog.csdn.net/huapeng_guo/article/details/130106780

https://blog.51cto.com/u_15899439/5909119

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2013-11-08 C 语言的可变参数表函数的设计
2013-11-08 转:Memcached常用命令及使用说明
2013-11-08 STL set 使用小结
2013-11-08 统计英文单词的出现次数
2013-11-08 C++利用指针突破私有成员访问限制
2013-11-08 Erlang语言介绍
点击右上角即可分享
微信分享提示