2010-06-19 74 views
1

我正在爲我的實習寫一個Apache模塊。我正在使用C(我不熟悉Perl或Python)。開發Apache模塊時使用第三方庫的問題

我需要使用HTML解析器來解決我寫這個模塊的問題。爲此,我正在考慮libxml2。

我很困惑我應該如何鏈接模塊中的庫?我應該在編譯模塊時鏈接庫嗎?或者我應該使用配置文件中的LoadFile指令來加載庫。

我主要關心的是,雖然我在Ubuntu上開發了這個功能,但我不知道將在部署服務器上運行的操作系統是什麼。所以我想要它的部署,併發症和成功。

編輯:@Grim:感謝回答:)

我編譯使用以下命令模塊:

APXS -I/usr/include目錄/的libxml2/-c mod_xmltest.c

sudo apxs -n xmltest_module -i mod_xmltest.la

我相信這不會鏈接模塊中的庫,當我啓動服務器時出現「Unresolved Symbols」錯誤,所以我使用LoadFile指令來加載libxml2庫。它似乎工作。

你認爲這樣可以有任何問題嗎?我認爲這使得我的模塊更具可移植性,因爲在部署服務器上,管理員可以明確指定libxml2庫的位置。

回答

1

您應該在編譯模塊時鏈接庫。

當然有通常的可移植性問題(至少在非POSIX操作系統中)。在這種情況下,其中一些解決方案由apxc解決。要說出可能發生哪些複雜情況是不可能的,但不能說明你所描述的任何事情。