本文面向Linux初学者,详细讲解gcc编译器和g++编译器的使用,以及如何创建和链接静态库与动态库。通过本教程,你将掌握C/C++程序从源码到可执行文件的完整流程。
大多数Linux发行版默认已安装gcc。若未安装,可使用包管理器安装:sudo apt install gcc g++(Debian/Ubuntu)或sudo yum install gcc gcc-c++(RHEL/CentOS)。
编译单个源文件:gcc hello.c -o hello 或 g++ hello.cpp -o hello。这里gcc编译器用于C语言,g++编译器用于C++语言,它们都会自动链接标准库。
gcc/g++的编译过程分为预处理、编译、汇编、链接四个阶段。通过选项可以控制:
-E:预处理后停止,生成.i文件。-S:编译后停止,生成汇编.s文件。-c:汇编后停止,生成目标.o文件。
静态库是在链接阶段将库代码直接复制到可执行文件中。优点是运行时无需依赖库文件,缺点是多个程序共用库时造成空间浪费。
创建静态库:
gcc -c add.c -o add.oar工具打包:ar rcs libadd.a add.o使用静态库:gcc main.c -L. -ladd -o main_static,其中-L指定库路径,-l指定库名(去掉lib前缀和.a后缀)。
动态库在程序运行时动态加载,多个程序可共享同一份库代码。优点是节省磁盘和内存,便于更新。
创建动态库:gcc -fPIC -shared add.c -o libadd.so
使用动态库:gcc main.c -L. -ladd -o main_dynamic。运行前需将库路径加入LD_LIBRARY_PATH或安装到系统目录。
查看可执行文件依赖的动态库:ldd main_dynamic。
实际上gcc和g++都是GNU编译器套件的一部分。gcc根据文件扩展名决定编译语言(.c为C,.cpp为C++),但链接时默认不链接C++标准库;而g++默认链接C++标准库,且对C++代码有更好的支持。建议编译C用gcc,编译C++用g++。
📌 本文SEO关键词: gcc编译器 g++编译器 静态库 动态库
© 2025 Linux编译器教程 · 小白友好版
本文由主机测评网于2026-02-12发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20260224953.html