【发布时间】:2014-12-31 10:14:19
【问题描述】:
我正在尝试运行简单的 Hello World PHP 扩展,但在制作和安装扩展之后以及当我想运行测试脚本时遇到以下问题:
P Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/skeleton.so' - /usr/lib/php5/20121212/skeleton.so: undefined symbol: _ZN3Php9ExtensionD1Ev in Unknown on line 0
/etc/php5/cli/conf.d/skeleton.ini
我的main.cpp 文件:
#include <phpcpp.h>
#include <iostream>
void helloWorld (Php::Parameters ¶ms)
{
std::string name=params[0];
std::cout<<"Hello "<<name<<"!"<<std::endl;
}
extern "C" {
PHPCPP_EXPORT void *get_module()
{
static Php::Extension extension("skeleton", "1.0");
extension.add("helloWorld", helloWorld);
return extension;
}
}
这是我的测试脚本:
<?php
echo helloWorld('Ben');
我受到本教程的启发:http://www.sitepoint.com/getting-started-php-extension-development-via-php-cpp/
你能帮我解决这个问题吗?提前感谢您的帮助。
【问题讨论】:
-
您是否启用了动态扩展?您是否从 cli 运行脚本?如果你运行“php -i | grep skeleton”,你看到你的扩展加载了吗?
标签: php c++ php-extension php-cpp