C语言预处理、编译、汇编、链接

查看库文件:

        ldd 可执行文件名字

库文件:

        静态库:

                libxxx.a

                lib前缀, xxx是库文件,a是后缀

        静态库制作:

                使用ar(archive)工具,将.o文件打包。

                ar -rcs libxxx.a xxx.o  xxx.o

        静态库的使用:

                gcc -o test test.c  -L.-lhello

                test目标文件

                test.c源文件

                -L库所在的路径

                -l后面是库的名称

        动态库:(共享库)

        libxxx.os

        gcc  -c  -fPIC  xxx.c  xxx.c -Wall

        -fPIC含义:生成与位置无关的代码。

        gcc  -shared -o libxxx.so  xxx.o xxx.o

        libxxx.so为动态库文件

        编译并且链接共享库        

        gcc -o test test.c  -L.  -lxxx

        gcc -o 可执行文件 源码文件 -L.路径  -l动态文件库的名字

        路径错误解决:

                由于加载动态库一般默认不是在当前路径下开始找的。默认是从系统目录库下开始找的。解决方案:

        第一个解决方案:把这个库拷贝到usr/lib下 (不提倡)

        第二种解决方案:使用环境变量,在LD_LIBRARY_PATH环境变量中添加库所在路径。export添加变量,在当前终端有效。在启动脚本加入变量,vi ~/bashrc, source ~/.bashrc,则在任何窗口有效。

        第三种解决方案:添加到/etc/ld.so.conf.d/*.conf文件,执行ld config刷新。

                        

1、预处理:头文件展开、宏替换、去注释、条件编译。

        gcc -E hello.c -o hello.i

2、编译:生成汇编语言

        gcc -S hello.i -o hello.s

3、汇编:将上一步生成的汇编语言 在这一步生成二进制程序

        gcc -C hello.s -o hello.o

4、链接:把程序和库文件链接起来,链接完生成可执行文件a.out

       gcc hello.o

C语言 程序的翻译 预处理 编译 汇编 链接 #define详解_汇编define_五毛变向.的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值