包含路徑
標題分為四種類別:系統、全域、程式庫及 。
系統標頭
#include <zircon/foo/bar.h>
定義
這些標頭會定義核心與使用者空間之間的介面 (已知 做為 vDSO 介面這些標頭定義系統呼叫,包括相關類型 和結構這些標頭也會定義一些基本的 C 和 C++ 機器, 例如以明確定義的序列當機。
附註
- 系統標頭可安裝在
zircon/
之下,而非lib/zircon/
。 - 系統呼叫包裝函式 (例如
zx
) 不算是系統標頭。他們 是需要系統標頭的程式庫標頭 (請見下文)。 - 標準系統標頭 (例如來自 C 和 C++ 標準程式庫) 會有 標準路徑
範例
#include <zircon/process.h>
#include <zircon/syscalls/hypervisor.h>
#include <stdint.h>
#include <algorithm>
全域標頭
#include <fuchsia/foo/bar.h>
定義
這些標頭定義使用者空間元件之間的全系統合約。這些 標頭是根據這些合約的 FIDL 定義產生。
附註
- 手寫程式碼應以程式庫標頭提供,而非全域 標題。
範例
#include <fuchsia/sysmem/cpp/fidl.h>
#include <fidl/fuchsia.sysmem/cpp/wire.h>
程式庫標頭
#include <lib/foo/bar.h>
定義
程式庫標頭是應用程式使用的手寫程式碼, 他們定義的介面是該應用程式的本機介面。有些程式庫 桃紅色特定,並在一些較低階的周圍提供人體工學包裝函式 系統設施有些程式庫可能不會直接與 Fuchsia 連結,
附註
- 所有程式庫標頭都位於
lib/
目錄中,可避免與 應用程式所使用的其他標頭。 - 頁首不得直接放在
lib/
底下。子目錄 (lib/foo/
) 的必要項目。
範例
#include <lib/fit/function.h>
#include <lib/sys/cpp/component_context.h>
#include <lib/zx/event.h>
導入作業標題
#include "src/foo/bar.h"
定義
導入標題屬於 Fuchsia 平台來源樹狀結構的內部。他們 從未包含在 SDK 中,並會由 來源樹狀結構
產生實作標頭的工具會將這些標頭放在平行目錄中 建構目錄,且使用者將這些內容納入 。
附註
- 包含的實作標頭會使用
"
(而非<
) 表示 路徑與來源樹狀結構的根目錄有關
範例
#include "src/ui/scenic/bin/app.h"
#include "src/lib/fxl/observer_list.h"
如果 fshost_config.h
由目標產生
//src/storage/fshost/BUILD.gn
:
#include "src/storage/fshost/fshost_config.h