c++静态库动态库的编译使用以及一些常见的问题和注意事项

本文详细介绍了C++中静态库与动态库的编译过程,包括预处理、编译、汇编和链接。讨论了如何生成和使用静态库(.a)和动态库(.so),以及解决"DSO missing from command line"的常见问题。还提到了动态库的别名、链接名和位置问题,并提供了配置动态库搜索路径的方法。
摘要由CSDN通过智能技术生成

Linux网络编程第二版 宋敬彬

默认文件扩展名
.i 预处理后的c文件
.s 汇编语言源文件
.o 汇编后的目标文件
.a 静态库
.so 共享库
a.out 链接后的输出文件

gcc下有很多编译器 常见的有以下几种
cc c语言编译器
gcc c语言编译器
g++ c++语言编译器
cpp 预处理编译器

头文件和库文件默认路径如下
/usr/local/include
/usr/incluede

/usr/lib
/lib
/usr/local/lib


预编译 ---> 编译和优化 ---> 汇编 ---> 链接

  • 预编译 将引用的头文件包含进源代码中 并对一些宏进行替换
    • gcc -E hello.c 默认会直接在终端输出 如果需要将预编译生成的中间内容输出到文件需要指定-o 文件名
  • 编译和优化 将用户语言翻译成机器可以处理识别的操作码 生成目标文件 通常翻译为汇编语言
    • gcc -c hello.c 会生成默认的目标文件 hello.o 如果要指定生成的文件可以用-o 文件名
    • gcc -S hello.c 会生成默认的汇编文件 hello.s 如果要指定生成的文件可以用-o 文件名
    • 汇编器as
  • 最后需要将所有的目标文件用某种方式组合起来才能运行 这就是链接的作用拉拉

生成静态库和使用静态库

静态库是obj文件的一个集合 通常叫做libxxx.a
由程序ar生成

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值