linux編譯基礎知識-頭文件標準路徑

📂 ??1. 系統路徑結構差異??

要查看 GCC 的默認頭文件搜索路徑,可通過以下方法操作(以 Linux 環境為例):

??1. 查看 C 語言頭文件路徑??

gcc -v -E -xc - < /dev/null 2>&1 | grep -A 100 "#include <…> search"

??輸出示例??:

#include <…> search starts here:/usr/lib/gcc/x86_64-linux-gnu/10/include/usr/local/include/usr/include/x86_64-linux-gnu/usr/include
End of search list.

??關鍵路徑說明??:

  • /usr/lib/gcc/x86_64-linux-gnu/10/include?? :GCC 內置頭文件(如 stddef.h),與編譯器和版本綁定。非標準庫,屬于GCC內部實現所需的基礎聲明
  • ??/usr/local/include??:存放??用戶手動編譯安裝??的第三方庫頭文件(如OpenCV、自編譯Python擴展)。編譯器搜索順序中高于/usr/include。
  • ??/usr/include/x86_64-linux-gnu??:架構相關的系統頭文件(如 ARM64 為 aarch64-linux-gnu),適配特定 CPU 指令集。
  • ??/usr/include??:存放C標準庫頭文件(如stdio.h、stdlib.h)及POSIX系統API(如pthread.h)。路徑固定,由系統包管理器(如apt)安裝,與GCC版本無直接綁定。提供底層系統調用封裝和基礎運行時支持。典型內容??:
    • ??/usr/include/sys??:POSIX標準路徑??,存放系統調用相關頭文件:sys/types.h(定義pid_t、off_t等),sys/wait.h(進程控制),sys/stat.h(文件狀態)
    • /usr/include/netinet/in.h:IPv4/IPv6地址定義
    • /usr/include/arpa/inet.h:網絡地址轉換函數。
    • 三方庫標準路徑??:通過包管理器(如apt)安裝的庫,頭文件通常放入/usr/include子目錄: /usr/include/openssl/,/usr/include/sqlite3/,/usr/include/python3.8/

??2. 查看 C++ 頭文件路徑??

路徑隨GCC版本動態變化,由編譯器安裝時生成。包含C++獨有的模板、命名空間等特性支持。

g++ -v -E -xc++ - < /dev/null 2>&1 | grep -A 100 "#include <…> search"

輸出路徑包含 C++ STL 路徑(如 /usr/include/c++/11)和架構優化路徑(如 /usr/include/c++/11/x86_64-linux-gnu)。

1. ??/usr/include/c++/10??

  • ??用途??:存放GCC 10版本的??C++標準庫頭文件??(如、)。
  • ??層級??:頂級C++庫目錄,包含STL、流處理等核心組件。

2. ??/usr/include/x86_64-linux-gnu/c++/10??

  • ??用途??:??架構相關的C++標準庫優化頭文件??,針對x86_64 CPU架構的特定實現(如SIMD指令優化)。
  • ??層級??:子目錄,為不同硬件平臺提供適配支持。

3. ??/usr/include/c++/10/backward??

  • ??用途??:存放??向后兼容的頭文件??,支持舊版C++標準(如C++98),避免新版本GCC編譯遺留代碼時報錯。
  • ??示例??:<backward/strstream>替代已廢棄的。
特性????glibc頭文件????C++標準庫頭文件??
??核心功能??C標準庫、系統API(文件/進程/線程等)C++標準模板庫(STL)、流處理、異常機制等
??依賴關系??獨立于編譯器,為所有C/C++程序提供基礎運行時依賴GCC版本,實現C++語言規范(如C++11/17)
??示例文件??stdio.h, unistd.h, pthread.hiostream, vector, algorithm
??底層支持??封裝Linux系統調用(如open()、fork())依賴glibc實現底層操作(如內存分配new/delete)

?? 二、編譯器搜索路徑優先級

編譯器按以下順序查找頭文件:

1. ??雙引號 ""的搜索順序??:

當前源文件目錄 → 引用文件的目錄 → -I指定路徑 → 系統路徑。

2. ??尖括號 <>的搜索順序??:

標準庫路徑 → 系統路徑 → -I指定路徑(部分編譯器支持)。

??包含方式????搜索順序????適用場景??
#include “”1. 當前目錄,2. -I指定路徑,3. 系統路徑項目內自定義頭文件
#include <>1. 標準庫路徑,2. 系統路徑,3. 第三方庫路徑(通過 -I添加)標準庫/第三方庫頭文件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/91681.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/91681.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/91681.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

離線語音芯片有哪些品牌和型號?

離線語音芯片的品牌有很多&#xff0c;型號也有很多&#xff0c;因為離線語音芯片的市場很大&#xff0c;幾乎所有的想要語音控制的產品都可以通過增加一顆離線語音芯片來實現語音控制的能力&#xff0c;今天主要提到的就是離線語音芯片品牌廠家之一的唯創知音。唯創知音發展歷…

Linux 軟件包管理

Linux 軟件包管理 分析 RPM 包 Linux 發行版本以 RHEL 為代表的發行版本&#xff0c;使用rpm包管理系統&#xff1a; RHEL (Red Hat Enterprise Linux&#xff09;Fedora&#xff08;由原來的RedHat桌面版本發展而來&#xff0c;免費版本&#xff09;CentOS&#xff08;RHEL的…

使用 Vue 3.0 Composition API 優化流程設計器界面

&#x1f90d; 前端開發工程師、技術日更博主、已過CET6 &#x1f368; 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1 &#x1f560; 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》、《前端求職突破計劃》 &#x1f35a; 藍橋云課簽約作者、…

2025Nacos安裝Mac版本 少走彎路版本

https://github.com/alibaba/nacos 一開始看網上文章&#xff0c;隨便下了一個最新的3.0.2&#xff0c;然后出現很多錯誤 密鑰等等問題&#xff0c;最后啟動了&#xff0c;但是打不開鏈接&#xff1a;http://localhost:8848/nacos 然后開始找問題日志&#xff0c;/.nofollow/…

sifu mod制作 相關經驗

sifu mod制作一遍流程數據傳遞后拆開是ok的&#xff0c;沒必要合并 斷片不能使用原材質不然導入ue里沒法片段選擇 效果拔群 帶自動權重就會有跟隨骨骼的效果&#xff0c;空頂點組會跟隨父級的原點 這個選負的會抵消膠囊的碰撞效果 應用并刷新布料模擬&#xff08;相當于工程圖的…

論文精讀筆記:Overview

本文檔記錄了一些經典論文的講解筆記。 重讀經典&#xff1a;《ImageNet Classification with Deep Convolutional Neural Networks》 重讀經典&#xff1a;《Generative Adversarial Nets》 重讀經典&#xff1a;《Deep Residual Learning for Image Recognition》 重讀經典…

Elasticsearch+Logstash+Filebeat+Kibana單機部署

目錄 一、配置準備 下載java&#xff0c;需要java環境 二、單機模式 ELK部署 修改域名解析 elasticsearch配置 啟動elasticsearch服務 查看是否啟用 查看監聽端口 logstash服務 創建配置文件 kibana 啟動服務kebana 驗證 網頁訪問 ?編輯 生成圖表 回到網頁 一、配置準…

redis快速部署、集成、調優

redis快速部署、集成、調優 1.部署 1.1 docker部署 參考&#xff1a;https://blog.csdn.net/taotao_guiwang/article/details/135508643 1.2 redis部署 資源見&#xff0c;百度網盤&#xff1a;https://pan.baidu.com/s/1qlabJ7m8BDm77GbDuHmbNQ?pwd41ac 執行redis_insta…

大學生HTML期末大作業——HTML+CSS+JavaScript音樂網站

HTMLCSSJS【音樂網站】網頁設計期末課程大作業 web前端開發技術 web課程設計 網頁規劃與設計&#x1f4a5; 文章目錄一、&#x1f3c1; 網站題目二、&#x1f6a9; 網站描述三、&#x1f38c; 網站介紹四、&#x1f3f4; 網站效果五、&#x1f3f3;? 網站代碼六、&#x1f3f3…

ARP協議是什么?ARP欺騙是如何實現的?我們該如何預防ARP欺騙?

ARP&#xff08;Address Resolution Protocol&#xff0c;地址解析協議&#xff09;是一個工作在數據鏈路層&#xff08;OSI第二層&#xff09;和網絡層&#xff08;OSI第三層&#xff09;之間的基礎網絡協議&#xff0c;它的核心功能是將網絡層地址&#xff08;IP地址&#xf…

一個物理引擎仿真器(mujoco這種)的計算流程

物理仿真的核心循環 一個典型的物理仿真引擎&#xff0c;在每一個時間步&#xff08;dt&#xff09;內&#xff0c;大致會執行以下流程&#xff1a; 確定當前狀態 (State)&#xff1a;獲取所有物體當前的位置 q 和速度 v。計算力 (Forces)&#xff1a;根據當前狀態&#xff0c;…

自然語言處理NLP(3)

上文&#xff1a; 自然語言處理NLP&#xff08;1&#xff09; 自然語言處理NLP&#xff08;2&#xff09; Gated RNN & LSTM 簡單RNN存在的問題 隨著時間的回溯&#xff0c;簡單RNN不能避免梯度消失或者梯度爆炸 梯度裁剪 用來解決梯度爆炸問題 code: g&#xff1a;所有參…

內循環全部滿足條件后,為true

### 實現方式在 C 中&#xff0c;可以通過在內循環外部定義一個布爾變量&#xff0c;并在內循環的每次迭代中檢查特定條件是否滿足。如果所有迭代均滿足條件&#xff0c;則在內循環結束后將布爾變量設置為 true。以下是一個示例代碼&#xff1a;cpp #include <iostream>i…

STM32--DHT11(標準庫)驅動開發

一、前言在我們進行嵌入式開發時&#xff0c;驅動開發也是十分重要的一步&#xff0c;在很多時候&#xff0c;我們的都需要自己來編寫硬件的底層驅動&#xff0c;實現硬件與芯片的通信&#xff0c;常見的協議有SPI&#xff0c;IIC&#xff0c;以及單總線的一些通信方式&#xf…

HttpServletRequest 和 HttpServletResponse核心接口區別

HttpServletRequest 和 HttpServletResponse核心接口區別在 Java Web 開發&#xff08;基于 Servlet 規范&#xff09;中&#xff0c;HttpServletRequest 和 HttpServletResponse 是兩個核心接口&#xff0c;分別代表 ??HTTP 請求?? 和 ??HTTP 響應??。它們的主要區別在…

win10 環境刪除文件提示文件被使用無法刪除怎么辦?

因為我沒想太好怎么模擬一個文件被使用&#xff0c;我就使用 "java -jar xxx.jar" 模擬 xxx.jar 文件被使用無法刪除吧。現在有一個后臺進行在執行 java -jar chat-robot-1.0.0.jar &#xff0c;所以此時刪除 chat-robot-1.0.0.jar 提示&#xff1a;當然這個提示對于…

1.7vue生命周期

生命周期階段與鉤子函數創建階段beforeCreate()&#xff1a;實例初始化之后&#xff0c;數據觀測和事件配置之前調用。此時無法訪問到data、methods等屬性。created()&#xff1a;實例創建完成后調用。完成了數據觀測&#xff0c;屬性和方法的運算&#xff0c;watch/event事件回…

第十八天(指紋識別WAF判斷蜜罐排除)

Web架構 開源CMS&#xff1a; Discuz、WordPress、PageAdmin、蟬知等 前端技術&#xff1a; HTML5、Jquery、Bootstrap、Vue、NodeJS等 開發語言&#xff1a; PHP、JAVA、Ruby、Python、C#、JS、Go等 框架組件&#xff1a; SpringMVC、Thinkphp、Yii、Tornado、Vue等 Web服…

Real-Time Rendering 4th Edition 完整學習路徑

課程計劃&#xff1a;Real-Time Rendering 4th Edition 完整學習路徑 &#x1f4da;? 階段一&#xff1a;數學基礎鞏固 (2-3周) &#x1f9ee;向量與矩陣運算 3D變換矩陣的本質理解齊次坐標系統的實際意義幾何數學 點、線、面的幾何關系法向量與切向量計算三角函數在圖形學中的…

MC0364魔法鏈路

碼蹄集OJ-魔法鏈路 MC0364?魔法鏈路 難度&#xff1a;黃金 時間限制&#xff1a;1 秒 占用內存&#xff1a;256 M 收藏 報錯 小碼妹學會了多重施法&#xff0c;也就是同時施放多個法術的能力&#xff0c;然而多重施法中每個最終施放的法術都需要一些前置的法力運轉&#xff…