c++ 头文件和库

2 篇文章 0 订阅
本文介绍了C++编译器GCC和Clang的区别,包括它们的编译工具链、调试器和链接器。同时,详细阐述了头文件和库的查找路径,涉及-I和-L选项、环境变量以及默认路径。还讨论了动态库的搜索顺序,包括编译时指定路径、LD_LIBRARY_PATH、配置文件和默认路径。
摘要由CSDN通过智能技术生成

1 c++ 头文件和库的位置与编译器类型有关。
2 两种编译器
gcc是一个编译器集合,不是单一编译器。使用autotools,make作为build工具。使用gdb作为debugger。使用ld作为linker。
clang/llvm是一个编译器工具链。使用cmake作为build工具。使用lldb作为debugger。使用lld作为linker。
编译器分前端和后端。clang是前端,llvm是后端。

3 头文件和库文件
1)编译器 -I -L指定的路径
2)环境变量CPLUS_INCLUDE_PATH,LIBRARY_PATH
3)编译器设定的路径
gcc:
/usr/include/c++

clang:
/usr/include/clang
/lib, /usr/lib
libc++ 是针对 Clang 编译器特别重写的 C++ 标准库,而 libstdc++ 则是 GCC 的对应 C++ 标准库了

4 动态库的搜索
动态库的搜索路径搜索的先后顺序是:
1)编译目标代码时指定的动态库搜索路径(这是通过gcc 的参数"-Wl,-rpath,“指定。当指定多个动态库搜索路径时,路径之间用冒号”:“分隔)
2)环境变量LD_LIBRARY_PATH指定的动态库搜索路径(当通过该环境变量指定多个动态库搜索路径时,路径之间用冒号”:"分隔)
3)配置文件/etc/ld.so.conf中指定的动态库搜索路径;
4)默认的动态库搜索路径/lib;
5)默认的动态库搜索路径/usr/lib。

参考文献

https://www.toptal.com/c-plus-plus/c-plus-plus-understanding-compilation
https://medium.com/coding-den/the-compilation-process-a1307824d40e
https://www.tenouk.com/ModuleW.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值