PHP警告:PHP启动:无法加载动态库'./lib.so' - ./lib.so:未定义符号:*在第0行的未知

时间:2013-07-22 10:18:58

标签: php c++ g++

我已经编写并编译了php扩展,但是当我尝试运行php时,我得到了这个错误 PHP警告:PHP启动:无法加载动态库'/usr/lib/php5/20100525+lfs/mylib.so' - /usr/lib/php5/20100525+lfs/mylib.so:未定义符号:_ZNK4Data10strtolowerEPKc in Unknown on第0行 的 data.h

class Data
{

public:
     // ...
     char *strtolower  ( const char * const ) const;
};

data.cpp

inline char *Data::strtolower(const char *const str) const
{
   char c, *b = estrdup(str), *s = b;
   while(*s != '\0' && (c = *s))
   {
      *s++ = (c >= 0x41 && c <= 0x5a) ? c + 0x20 : c;
   }
   return b;
}

这个错误是什么以及编译代码的原因是什么?主要问题是如何解决它?

1 个答案:

答案 0 :(得分:0)

我写了两个可以帮助你的答案:

Linux C++ LD_LIBRARY_PATH suppressing standard libraries

How to call function from .so file using php script?

具体来说,我认为您的错误是您的模块不在ldcache中(请参阅第一个答案)。

此外,您无法在cpp文件中内联。内联仅适用于标题。删除内联,如果您的模块位于ldcache或LD_LIBRARY_PATH中,它可能会起作用。