我在构建 Apache c 模块时遇到问题。为了编译模块,我使用以下语句:
sudo apxs2 -I/usr/include/mysql -i -a -c mod_aledav.c
并且模块似乎已正确编译,但是当我尝试重新启动 Apache 时,输出为:
apache2: Syntax error on line 239 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/aledav.load: Cannot load /usr/lib/apache2/modules/mod_aledav.so into server: /usr/lib/apache2/modules/mod_aledav.so: undefined symbol: mysql_errno
Action 'configtest' failed.
The Apache error log may have more information.
...fail!
你能帮助我吗?
答案1
好的,问题解决了。我在语句行中添加了一个命令:
$(mysql_config --libs)
所以新的表述是
apxs2 -I/usr/include/mysql -i -a -c $(mysql_config --libs) mod_aledav.c
重新启动apache2服务后,模块就被加载了。
来自 mysql 站点
因此一个新的说法是
sudo apxs2 -I/usr/include/mysql -i -a -c -lmysqlclient -lz mod_aledav.c