2016-03-03 74 views
2

我有一部分用C語言編寫的Perl模塊。模塊使用C pthreads庫。我第一次考慮使用標準XS包裝器將C代碼添加到我的模塊中,但由於此錯誤報告,這似乎只能在Perl 5.22中實現:https://rt.perl.org/Public/Bug/Display.html?id=122906在安裝Perl模塊時安裝純C二進制文件

我的C代碼並不需要與其餘的Perl代碼。它只是讀取一個文件並寫入另一個文件。

爲了不將我的模塊限制在Perl 5.22以上,我正在考慮編譯一個簡單的C二進制文件,並使用system或反引號從我的Perl代碼中調用它。

所以我的問題是:是否有可能將這種目標添加到Makefile.PL,如果是的話,怎麼樣? 如果這種安裝過程對於Perl模塊來說是可取的,那麼也許還需要一個輸入,因爲我也可能在Github上單獨發佈C代碼。 對我來說,將它與Perl模塊一起安裝似乎是合乎邏輯的,因爲C二進制文件除了使用Perl模塊之外沒有其他用處。

+1

我認爲你最好在irc.perl.org上的#toolchain問這個問題 – simbabque

回答

1

您可以添加一個函數到您的名爲MY::postamble()的函數Makefile生成的任何你想要添加的字符串。如果您想了解更多信息,請參閱ExtUtils::MakeMaker聯機幫助頁。

+0

謝謝,這個工作很完美。我沒有將Makefile文件中的MY :: postamble()片斷和EXE_FILES => [qw(c_module/c_module_binary)]添加到Makefile.PL文件中,以便將它複製到系統默認的二進制文件夾中安裝」。 –