首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中加载GTK2失败

在PHP中加载GTK2失败
EN

Stack Overflow用户
提问于 2011-12-30 09:08:04
回答 2查看 1K关注 0票数 4

我已经做了以下工作:

代码语言:javascript
复制
Installed PHP 5.3.3

Installed GTK 2.0.1

Installed the latest version of php-gtk from svn

All dependencies are resolved and installed.

我编辑了php.ini,将GTk库加载到extension=php_gtk2.so扩展库中,并将其保存。

如果我检查一下php -m,我会发现一个与Unable to Load Dynamic Library ../../php_gtk2.so类似的错误,我假设它可能是因为php_gtk2.so是一个静态库。

那我怎么装呢?知道我在哪里搞错了吗?

我在跑CentOS 6.0 ServerPHP 5.3.3GTK 2.0.1

代码语言:javascript
复制
edit:

具体问题如下:

代码语言:javascript
复制
    [root@srv-vg phpapps]# php -m
    PHP Warning:  PHP Startup: Unable to load dynamic library 
'/usr/lib/php/modules/php_gtk2.so' - 
/usr/lib/php/modules/php_gtk2.so: 
undefined symbol: php_cairo_get_context_ce in Unknown on line 0
    [PHP Modules]
    apc
    bz2
    calendar
    Core
    ctype
    curl
    date
    dom
    ereg
    exif
    fileinfo
    filter
    ftp
    gd
    gettext
    gmp
    hash
    iconv
    json
    ldap
    libxml
    memcache
    mysql
    mysqli
    odbc
    openssl
    pcntl
    pcre
    PDO
    pdo_mysql
    PDO_ODBC
    pdo_pgsql
    pdo_sqlite
    pgsql
    Phar
    readline
    Reflection
    session
    shmop
    SimpleXML
    soap
    sockets
    SPL
    sqlite3
    standard
    tokenizer
    wddx
    xml
    xmlreader
    xmlrpc
    xmlwriter
    xsl
    zip
    zlib

    [Zend Modules]

正如hakre所说,我尝试通过添加cairo extension文件来加载cairo.ini。但现在它也出现了这样的错误

代码语言:javascript
复制
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/cairo.so' - /usr/lib/php/modules/cairo.so: undefined symbol: cairo_ce_cairosubsurface in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/php_gtk2.so' - /usr/lib/php/modules/php_gtk2.so: undefined symbol: php_cairo_get_context_ce in Unknown on line 0
[PHP Modules]

edit2:

当我安装cairo时,cairo_surface.c中有一个bug,我清除了它,论坛上的一个人告诉我怎么做。我可以成功地安装cairo。但是现在,这个呢!!

EN

回答 2

Stack Overflow用户

发布于 2011-12-31 23:10:38

你是从SVN安装的。但是,在编译的二进制文件中,要找到符号php_cairo_get_context_ce有一个问题。

模块列表显示您没有安装开罗扩展

安装它并在php之前加载它。

票数 1
EN

Stack Overflow用户

发布于 2015-12-21 17:07:07

我在ubuntu也面临过同样的问题。我为解决这个问题所做的就是

  1. 将目录/usr/lib/php5/20121212中的php_gtk2.socairo.so文件的权限更改为644。早些时候是777。对于其他我不知道的系统,路径中的最后一个数字可能是不同的。
  2. 更新了文件sudo gedit /etc/php5/cli/php.ini,在动态扩展一节中添加了这两个模块的条目 extension= /usr/lib/php5/20121212/cairo.so extension= /usr/lib/php5/20121212/php_gtk2.so

请注意订单,cairo.so必须是第一个。早期的php_gtk2.so是第一个导致错误的原因,我相信。

  1. 最后,使用命令从终端运行目录$ php demos/phpgtk2-demo.php -gtk-src中的演示。

希望它有帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8677860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档