linux 编译php UI桌面程序扩展。

先编译libui,再编译ui.

编译ui扩展,使用php7.2可能导致无法加载ui.so扩展问题,我重新用php7.1编译才能是使用。

一、 cmake

# wget https://github.com/Kitware/CMake/releases/download/v3.18.0-rc3/cmake-3.18.0-rc3-Linux-x86_64.tar.gz

# tar -xzvf cmake-3.18.0-rc3-Linux-x86_64.tar.gz

# ln -s /usr/local/cmake-3.18.0-rc3-Linux-x86_64/bin/cmake /usr/bin/

# cmake  --version

bc830ca257c7bf6fed2bc6a167e828f9.png

二、 libui扩展

# apt-get install gcc  g++  gtk+-3.0   console-setup

# git clone git://github.com/andlabs/libui

# cd libui

# git checkoutalpha3.5             //ui extension currently only works with alpha3.5 version of libui , 当前分支下有CMakeList.txt文件,否则报错:CMake Error: The source directory "/usr/local/src/php_ui/libui" does not appear to contain CMakeLists.txt

#  cmake .

#  make

#  install ui.h /usr/include/

#  install ui_unix.h /usr/include/

#  install out/libui.so /usr/lib/

#  install out/libui.so.0 /usr/lib/

793d380ba894429be0facf57a55e94ed.png

4b91a29a5d99cfd8c05947cc9b292def.png

822ed2813384fa465ff273573e5d8b47.png

bd2bdbca2afb8b26e7f7a018c4f899e6.png

三   php  ui

# apt-get    install    m4   autoconf

#git clonehttps://github.com/krakjoe/ui.git

#cd ui

#phpize

#  ./configure --with-php-config=/opt/lampp/bin/php-config

c7243711fd22d33ff7ee7820eb35a753.png

#make && make install

报错如下:

0ae472c914c5cd5d599071c419bf43ab.png

把box.c 第5个参数null去掉, githup 也有说明。

重新编译!

f531c075a2685e346b6f4154d4537b0b.png

吃鲸!居然编译完成!

#  vi /opt/lampp/etc/php.ini

添加: extension="ui.so"

别太高兴太早,make test 测试:

# make test

2ca3fd6579c714431dabf15ff36a974a.png

辛苦了这么久,编译成功了,居然用不了!!!!

PHP Warning:  PHP Startup: Unable to load dynamic library 'ui.so'

--------------------------------------------------------------------------------

找了很久的文档,没有关于这个问题怎么解决方案……

于是开始切换php 7.1编译试试……

重复上面的命令:

# make clean

#  /usr/local/php7.1/bin/phpize

# /configure --with-php-config=/usr/local/php7.1/bin/php-config

# make && make install

# make test

部分截图:

f885c2c6844907ad7c7cc229cd2e7b15.png

0752b46aba65737747fa2e46e39a6ae9.png

没有任何报错,继续输入命令:

# vi /usr/local/php7.1/lib/php.ini

添加:extension=ui.so

#  /usr/local/php7.1/bin/php -m

007ac718d59bc4ab4de7fcc82c7b89ae.png

吃鲸! 居然编译成功了!

运行官方提供的示例试试:

ec8722accf1fa61bbdb69d8d68edfa6d.png

ebee49adf7c5ecdfd86f8d7b42d68bb5.png

ccb58ee40f88e23bda8c24b7a246560e.png

e87e0a29cd7df292fb5a52b04874bd9a.png

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐