內容

名稱

h2ph - 將 .h C 標頭檔轉換為 .ph Perl 標頭檔

語法

h2ph [-d 目標目錄] [-r | -a] [-l] [-h] [-e] [-D] [-Q] [標頭檔]

說明

h2ph 會將指定的任何 C 標頭檔轉換為對應的 Perl 標頭檔格式。最簡單的執行方式是在 /usr/include 中執行

cd /usr/include; h2ph * sys/*

cd /usr/include; h2ph * sys/* arpa/* netinet/*

cd /usr/include; h2ph -r -l .

輸出檔會放置在 Perl 的架構依賴函式庫目錄的階層結構中。您可以使用 -d 參數指定不同的階層結構。

如果在沒有參數的情況下執行,會將標準輸入過濾到標準輸出。

選項

-d 目標目錄

將產生的 .ph 檔放在 目標目錄底下,而不是放在 Perl 函式庫的預設位置 ($Config{'installsitearch'})。

-r

遞迴執行;如果任何 headerfiles 是目錄,則對這些目錄(及其子目錄等)中的所有檔案執行 h2ph-r-a 互斥。

-a

自動執行;轉換 headerfiles,以及它們包含的任何 .h 檔案。此選項會在 C 編譯器通常使用的所有目錄中搜尋 .h 檔案。-a-r 互斥。

-l

符號連結會複製到目標目錄中。如果未指定 -l,則會略過連結。

-h

在 .ph 檔案中放入「提示」,有助於找出 h2ph 的問題。在您需要包含語法錯誤的 .ph 檔案時,會看到略微有幫助的,而不是難以理解的

[ some error condition ] at (eval mmm) line nnn

[ some error condition ] at filename.ph line nnn

但是,使用 -h 建置時,.ph 檔案的大小幾乎會增加一倍。

-e

如果在轉換過程中遇到錯誤,則會移除輸出檔案並發出警告,而不是立即終止轉換。

-D

.h 檔案中的程式碼作為註解包含在 .ph 檔案中。這主要用於除錯 h2ph

-Q

「安靜」模式;不要列印出正在轉換的檔案名稱。

環境變數

不使用環境變數。

檔案

/usr/include/*.h
/usr/include/sys/*.h

作者

Larry Wall

另請參閱

perl(1)

診斷

如果無法讀取或寫入相關檔案,則會發出通常的警告。

錯誤

不會為您建構 %sizeof 陣列。

它不會處理所有 C 結構,但它會嘗試在評估中隔離定義,以便您可以取得它可以轉換的定義。

它只是一個粗略的工具。您可能需要修改產生的檔案。

您必須手動執行此程式;它不會作為 Perl 安裝的一部分執行。

無法處理分段建立的複雜表達式,例如

    enum {
	FIRST_VALUE,
	SECOND_VALUE,
    #ifdef ABC
	THIRD_VALUE
    #endif
    };

不一定會找到所有 C 編譯器內部定義的符號。