2012-06-08 18 views
1

我有一個非常大的Perl模塊,我期待在我的Visual C++項目中調用它。我知道有這樣的工具,如perl2exepp可以將Perl模塊轉換爲獨立的可執行文件(abc.exe)。如何用Perl模塊創建具有C或C++鏈接的靜態庫?

我不喜歡獨立的可執行文件,因爲它使界面非常複雜。我必須通過創建一個進程並使用標準輸入/輸出與它進行通信來調用Perl模塊。

如果Perl模塊是一個C/C++靜態庫,它會容易得多。只需鏈接並調用一個函數即可!

在此先感謝!

回答

1

您不能(但|很容易)編譯模塊。相反,embed the Perl interpreter as a library

+0

謝謝。但在這種情況下,我必須將源代碼格式的perl模塊與我的C++可執行文件一起交付。我對嗎? – Edmund

+0

是的,你是對的。 – daxim

+1

公平地說,'perl2exe'還提供Perl源代碼。 –

1

你確實可以將你的模塊靜態鏈接到你的C項目中。要實現的事情是你也需要鏈接perlperl是一個大量使用Perl代碼的庫(即使Perl代碼可以編譯爲機器語言也是如此)。

perlembed文件如何做到這一點。

+0

我對perlembed的理解是,它能夠在C/C++程序中創建一個Perl解釋器。通過該解釋器,您可以調用您的Perl模塊。 Perl模塊仍然是獨立的* .pm文件。我是Perl新手,所以我不太確定。 – Edmund

+0

@ user1444658,它不需要是外部文件。您可以將.pm的Perl內容傳遞給解釋器,並且可以將任何XS組件鏈接到您的可執行文件。 – ikegami