2010-06-19 77 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解决。要说出可能发生哪些复杂情况是不可能的,但不能说明你所描述的任何事情。