1
我剛剛編譯並運行了一個hello world的Perl擴展,但我不知道原理。.pm
如何調用.so
?Perl模塊(.pm)如何調用相應的.so?
我剛剛編譯並運行了一個hello world的Perl擴展,但我不知道原理。.pm
如何調用.so
?Perl模塊(.pm)如何調用相應的.so?
它不需要 - 二進制代碼定義模塊名稱空間中的一些變量和函數,它們可以像常規變量一樣使用。 .pm
文件只需要確保在需要時加載.so
。這由DynaLoader模塊完成。通過繼承DynaLoader
,確保在您的類上調用未知方法時加載了.so
文件。
你沒有提到'.pm'如何映射到'.so'。 – Learning
@學習:這是由DynaLoader(或其輕量級表兄弟XSLoader)完成的;如果你願意,你可以閱讀它的來源,但是沒有人需要關心它的工作原理。 – ysth
@學習:對於模塊'Foo :: Bar',文件是'auto/Foo/Bar.so' - 規則幾乎與'.pm'文件相同,但是前面加了auto /'目錄。 –