apache 2.4模块一个处理程序在另一个具有相同名称的处理程序中调用函数

时间:2013-08-29 07:01:23

标签: apache2 shared-libraries

我正在使用apache服务器2.4来部署Web应用程序,我已经使用请求处理程序创建了两个自定义C模块 Handler1 &的 Handler2 即可。这些已在httpd.conf文件中正确添加和配置,以处理与我的应用程序相关的特定请求。

问题是我在两个自定义模块.so文件中都有一个函数 void foo(char *,char *),它们在没有任何文件的情况下加载到apache服务器中。问题。但是有一种情况是Handler2正在处理请求并且我调用了 foo()来调用Handler1中的函数。在 Handler1 :: foo()完成后,控件再次回到Handler2。

知道这种行为背后的原因是什么?

1 个答案:

答案 0 :(得分:1)

不需要导出foo()函数,您可以将其声明为静态,或者您需要正确管理符号可见性。参见例如(这适用于AIX,但概念完全相同):

http://www.ibm.com/developerworks/aix/library/au-aix-symbol-visibility/