目錄

名稱

ExtUtils::Liblist - 判斷要使用的函式庫及其使用方式

語法

require ExtUtils::Liblist;

$MM->ext($potential_libs, $verbose, $need_names);

# Usually you can get away with:
ExtUtils::Liblist->ext($potential_libs, $verbose, $need_names)

說明

此工具採用 -llib1 -llib2 -llib3 形式的函式庫清單,並傳回適合包含在延伸模組 Makefile 中的行。額外的函式庫路徑可以使用 -L/another/path 形式包含,這會影響後續所有函式庫的搜尋。

它會傳回包含四或五個純量值的陣列:EXTRALIBS、BSLOADLIBS、LDLOADLIBS、LD_RUN_PATH,以及實際函式庫檔名的陣列參考(如果有的話)。其中一些在 Unix 上才有意義。請參閱下方關於這些平台特定部分的詳細資料。函式庫檔名的清單僅在 $need_names 參數為 true 時傳回。

相依函式庫可以使用三種方式之一連結

EXTRALIBS

連結包含此擴充套件的 Perl 二進位檔時,需要連結的函式庫清單。僅包含實際存在的函式庫。這些函式庫會寫入檔案,並在連結 Perl 時使用。

LDLOADLIBS 和 LD_RUN_PATH

使用 ld 建立時,可以或必須連結到共用函式庫的函式庫清單。這些可能是靜態或動態函式庫。LD_RUN_PATH 是 LDLOADLIBS 中目錄的冒號分隔清單。它會作為環境變數傳遞給連結共用函式庫的程序。

BSLOADLIBS

需要但可以在執行時間動態連結的函式庫清單。SunOS/Solaris 不需要此功能,因為 ld 會將資訊(來自 LDLOADLIBS)記錄到物件檔案中。此清單用於建立 .bs(開機)檔案。

可攜性

此模組處理許多系統相依性,且程式碼中有相當多特定於架構的 if

VMS 實作

在 VMS 下執行的 ext() 版本與 Unix-OS/2 版本在幾個方面有所不同

此外,還會嘗試辨識幾個常見的 Unix 函式庫名稱,並根據需要將其篩選出來或轉換為 VMS 等效名稱。

一般來說,ext() 的 VMS 版本應該可以適當地處理原本設計給 Unix 或 VMS 環境的擴充套件輸入。如果您遇到問題,或發現可以改善搜尋的案例,請讓我們知道。

Win32 實作

在 Win32 下執行的 ext() 版本在幾個方面與 Unix-OS/2 版本不同

另請參閱

ExtUtils::MakeMaker