Linux下C/C++编译链接过程及库函数使用说明

本文详细介绍了Linux下C/C++的编译链接过程,包括预处理、编译、汇编和链接。讨论了C语言的库函数,如查看帮助和源码,以及C++的编译过程,涉及到libstdc++.so.6动态链接库。还解释了gcc和g++编译器的区别,并提供了查找和理解库函数的资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、linux C语言的编译链接过程

        gcc编译命令
        gcc   -E   hello.c   -o   hello.i      预处理    到/usr/include下找到头文件
        gcc   -S   hello.i    -o   hello.s      编译       形成汇编代码
        gcc   -c    hello.s   -o   hello.o     汇编

        gcc          hello.o   -o   hello        链接       找到/lib/libc.so.6=> /lib/x86_64-linux-gnu/libc.so.6


二、C语言库函数源码

    在gnu里面找到libc为C语言库函数源码,请参考http://www.360doc.com/content/10/0930/20/3637244_57623959.shtml,个人认为由它可以生成上面所说的/usr/include下的头文件和/lib/libc.so.6的动态链接库。


三、C语言库函数使用帮助

    1、man 3 strcmp

    2、到gnu看libc的文档

    3、看源码


四、linux C++语言的编译链接过程

    g++  -E   hello.cpp   -o   hello.i      预处理    到/usr/include/c++/4.4下找到头文件(用locate iostream找到)

      g++   -S   hello.i    -o   hello.s      编译       形成汇编代码

      g++   -c    hello.s   -o   hello.o     汇编

      g++          hello.o   -o   hello        链接       找到/usr/lib/libstdc++.so.6 =>/usr/lib/x86_64-linux-gnu/libstdc++.so.6,还有很多其他的,使用命令ldd hello来看


五、C++语言库函数源码

     参考http://gcc.gnu.org/libstdc++/,下载gcc源码,libstdc++已经包含在了gcc源码中,编译gcc源码,可以生成/usr/include/c++/4.4的头文件和/usr/lib/libstdc++.so.6动态链接库。同时生成gcc,g++编译器。


六、gcc g++编译器的区别

       对于 hello.c 文件,两者完全一样。

       对于hello.cpp文件

       gcc -c hello.cpp -o hello.o

       gcc -lstdc++ hello.o -o hello

       g++ -c hello.cpp -o hello.o

       g++  hello.o -o hello

       在链接时候,两者不同,要使用g++或者是gcc -lstdc++

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值