c++ 头文件和库
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
總結
- 上一篇: 无线Mesh网络 介绍
- 下一篇: s3c2440移植MQTT