CSDN博客

具有图形化编程才有意思,这几天看到了php ui 图形扩展,只是现在只能下载php 7.1的 本次教程编译php7.2.6的 php ui

要是linux下编译起来比较简单 但是 windows下就麻烦些

参考文章: http://blog.51cto.com/lancelot/2054953  windows下编译php7扩展memcache

php7.2.6的编译(windows环境)有几个重要的不同.

1.php7.2采用 vc15(vs2017)编译

2.php7的sdk php-sdk

3.编译环境搭建更加简单一些了.

具体环境搭建

安装vc15编译器

vs2017把编译器 和 ide 分开了,因为我们只需要编译器所以就不安装vs2017了(直接安装vs2017 免费版也可以)

注意win下单独下载cmake 并配置到系统环境中

https://www.visualstudio.com/zh-hans/downloads/?utm_source=web&utm_medium=documentation&utm_campaign=vs2017upgrade&utm_term=vs2017&rr=https%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fbb383796.aspx

点击 下载地址 到下载页面 在下面找到 "Visual Studio 2017 生成工具" 下载 安装就可以了

注意选择 vc相关的程序 下面是安装的截图

下载 php-sdk 解压

https://github.com/Microsoft/php-sdk-binary-tools

解压到 d:\php_sdk\ (假设我们准备使用 d:\php_sdk\ 作为编译目录)

这时 d:\php_sdk\ 下面应该有

在 J:\compiler\php\sdk\binary-tools 运行phpsdk-vc15-x86.bat

在 php_sdk 目录 按住 shift 键 右键 点击 "在此处打开命令行窗口"

在命令行窗口运行 "phpsdk-vc15-x86.bat"

注释: 如果想编译 64位版本就运行 x64,

结果如下图(phpsdk目录不太一样)

运行 phpsdk_buildtree phpdev

这时候 J:\compiler\php\sdk\下面应该会有一个 phpdev 目录

解压到任意目录

  1. mkdir build && cd build
  2. cmake -G"NMake Makefiles" NDEBUG ..
mkdir build && cd build
cmake -G"NMake Makefiles" NDEBUG ..
  1. 打开
  2. CMakeFiles\libui.dir\build.make:1298
  3. resources.rc.* 改成 resources.rc.res
打开
CMakeFiles\libui.dir\build.make:1298
resources.rc.* 改成 resources.rc.res
cmake --build .
  1. libui-alpha3.5\build\out
  2. out\libui.lib 和 out\libui.res 复制到 J:\compiler\php\sdk\phpdev\vc15\x64\phpdev\vc15\x64\deps\lib
  3. libui-alpha3.5
  4. ui.h 复制到 J:\compiler\php\sdk\phpdev\vc15\x64\phpdev\vc15\x64\deps\include
  5. ui_darwin.h 复制到 J:\compiler\php\sdk\phpdev\vc15\x64\phpdev\vc15\x64\deps\include
  6. ui_unix.h 复制到 J:\compiler\php\sdk\phpdev\vc15\x64\phpdev\vc15\x64\deps\include
  7. ui_windows.h 复制到 J:\compiler\php\sdk\phpdev\vc15\x64\phpdev\vc15\x64\deps\include
libui-alpha3.5\build\out
out\libui.lib 和 out\libui.res 复制到 J:\compiler\php\sdk\phpdev\vc15\x64\phpdev\vc15\x64\deps\lib
libui-alpha3.5
ui.h 复制到 J:\compiler\php\sdk\phpdev\vc15\x64\phpdev\vc15\x64\deps\include
ui_darwin.h 复制到 J:\compiler\php\sdk\phpdev\vc15\x64\phpdev\vc15\x64\deps\include
ui_unix.h 复制到 J:\compiler\php\sdk\phpdev\vc15\x64\phpdev\vc15\x64\deps\include
ui_windows.h 复制到 J:\compiler\php\sdk\phpdev\vc15\x64\phpdev\vc15\x64\deps\include

下载 pthreads-w32-2-9-1-release 点击到下载页面

  1. pthreadVC2.lib 复制到 J:\compiler\php\sdk\phpdev\phpdev\vc15\x64\deps\lib
pthreadVC2.lib 复制到 J:\compiler\php\sdk\phpdev\phpdev\vc15\x64\deps\lib

打开 pthread.h 开头增加预处理 内容如下

  1. #define HAVE_STRUCT_TIMESPEC
  2. #define _TIMESPEC_DEFINED
#define HAVE_STRUCT_TIMESPEC
#define _TIMESPEC_DEFINED

将这个文件复制到

  1. J:\compiler\php\sdk\phpdev\phpdev\vc15\x64\deps\include
J:\compiler\php\sdk\phpdev\phpdev\vc15\x64\deps\include

下载 php ui

https://github.com/krakjoe/ui

如果有当前使用版本可直接下载

http://pecl.php.net/package/ui

手册

http://php.net/ui

解压到php ext目录中并重命名为ui

进入 php-src 目录,执行

命令行 "cd /d J:\compiler\php\sdk\phpdev\vc15\x64\php-7.2.6" 进入 php 源码目录

命令行"phpsdk_deps --update --branch master" php会自动下载 需要的依赖包(以前需要手动下载php-dsp文件)

看到 successfully 字样  说明下载完成

执行 "buildconf"

命令行 执行 "buildconf"

如果提示 没有文件扩展“.js”的脚本引擎

可下载文件 运行解决 点击跳转

重新执行 buildconf

结果如下 说明运行完毕

  1. $ buildconf
  2. Rebuilding configure.js
  3. Now run 'configure --help'

编译php

  1. configure --disable-all --enable-cli --enable-fd-setsize=2048 --enable-sanitizer --with-ui=shared --with-curl=shared --disable-cgi
configure --disable-all --enable-cli --enable-fd-setsize=2048 --enable-sanitizer --with-ui=shared --with-curl=shared --disable-cgi 
  1. 扩展
  2. --disable-zts
  3. --disable-cgi   编译出 windows 版本和 php-cgi.exe
  4. --disable-zts   nts 非线程安全
  5. --enable-shmop=shared   以dll 方式编译 php shmop 扩展
扩展
--disable-zts
--disable-cgi 编译出 windows 版本和 php-cgi.exe
--disable-zts nts 非线程安全
--enable-shmop=shared 以dll 方式编译 php shmop 扩展
  1. Makefile 如果链接提示库不存在 可修改makefile 修改如下
  2. LIBS=kernel32.lib ole32.lib user32.lib advapi32.lib shell32.lib ws2_32.lib Dnsapi.lib psapi.lib bcrypt.lib comdlg32.lib  Gdi32.lib comctl32.lib version.lib d2d1.lib dwrite.lib windowscodecs.lib dxgi.lib d3d12.lib ScrnSave.Lib USP10.Lib UxTheme.lib
Makefile 如果链接提示库不存在 可修改makefile 修改如下
LIBS=kernel32.lib ole32.lib user32.lib advapi32.lib shell32.lib ws2_32.lib Dnsapi.lib psapi.lib bcrypt.lib comdlg32.lib Gdi32.lib comctl32.lib version.lib d2d1.lib dwrite.lib windowscodecs.lib dxgi.lib d3d12.lib ScrnSave.Lib USP10.Lib UxTheme.lib

然后执行"nmake" 开始编译

等待数分钟(或者数10分钟)后,在php-源码目录应该能够找到 Release_TS 目录看见 php-ui了

最后 pthreadVC2.dll 和 libui.dll 复制到php 根目录

php-ui.dll 复制到 php ext目录

php ini 新增

extension=ui

ok下面是运行截图

下面是编译好了的

点击到下载页面

本文由 黑白世界4648 第一时间收藏到GET,原文来自 → blog.csdn.net

windows下编译php7图形库php_ui.dll的更多相关文章

  1. Windows下尝试PHP7提示丢失VCRUNTIME140.DLL的问题解决

    前天PHP7.0.0正式版发布了,有一些比较好的改进,官方也说速度比php5.6快了两倍,性能上有了很大提升,并且也发布了从php5.x向php7迁移的问题,所以今后php网站迁移后能够大幅度的提升网 ...

  2. 在Windows下编译Emacs

    在Windows下编译Emacs Windows下编译好的Emacs主要有两个版本,一个来自http://nqmacs.sourceforge.net/,另一个来自http://www.crasseu ...

  3. 在Windows下编译FFmpeg详细说明

    MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...

  4. 在Windows下编译OpenSSL(VS2005和VC6)

    需要说明的是请一定安装openssl-0.9.8a .  openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...

  5. Windows下编译SDL

    Windows下编译SDL的理由我就不多说了,无论用VS来编译或调试SDL库都是很方便的.而且SDL源代码中也包含了VC工程,你所要做的只是解压VC工程,进行适当的配置,然后编译.调试. 编译SDL大 ...

  6. 一步步实现windows版ijkplayer系列文章之四——windows下编译ijkplyer版ffmpeg

    一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...

  7. windows下编译和安装boost库

    boost是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库. 获取方式 boost提供源码形式的安装包,可以从boost官方网站下载,目前最新版本是1.59.0. 本机上正好有boos ...

  8. (转)windows下编译最新的x264

    二:<windows下编译最新的x264> X264更新的比较快,每天都有更新,但算法模块,基本结构是没有多大变化的.x264都是用C语言写的包括C99,但C99语法是在VC中是没法用的( ...

  9. 在Windows下编译mongo-c-driver 1.3.x

    在Windows下编译mongo-c-driver 1.3.x 在Windows下编译mongo-c-driver 1.3.x 1.安装 MSYS2https://sourceforge.net/pr ...

随机推荐

  1. Confluence 6 下载和安装 Oracle thin 驱动

    基于许可证的考虑,我们不能将 Oracle 的驱动捆绑到 Confluence 中.如果你希望你的 Confluence 能够连接到 Oracle 数据库,你需要: 停止 Confluence. 进入 ...

  2. Confluence 6 workbox 配置查询间隔

    查询间隔在Confluence 服务器中的 workbox 被用来显示应用内通知和任务. 激活的查询间隔(Active polling interval) Confluence 将会等待多少时间(秒) ...

  3. redis客户端、分布式锁及数据一致性

    Redis Java客户端有很多的开源产品比如Redission.Jedis.lettuce等. Jedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持:Redis ...

  4. 高斯消元处理无解|多解情况 poj1830

    高斯消元结束后,若存在系数为0,常数不为0的行,则方程无解 若系数不为0的行有k个,则说明主元有k个,自由元有n-k个,方程多解 /* 给定n个开关的初始状态si,要求将其变成目标状态di 规定: 每 ...

  5. Fiddler抓包6-get请求(url详解)

    前言 上一篇介绍了Composer的功能,可以模拟get和post请求,get请求有些是不带参数的,这种比较容易,直接放到url地址栏就行.有些get请求会带有参数,本篇详细介绍url地址格式. 一. ...

  6. truncate table时存在外键约束的解决办法

    以前在使用truncate命令时遇到表存在外键引用时无法执行命令的情况都是用delete来代替,今天又遇到这个问题,于是在网上搜了一把,可以通过如下方式解决: 1.基本思路:先关闭mysql的外键约束 ...

  7. Sublime Text 3 快捷键总结(拿走)

    以下是个人总结不完全的快捷键总汇,祝愿各位顺利解放自己的鼠标. 选择类 Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本. Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同 ...

  8. hbase启动后HMaster进程自动关闭

    1.情况描述如题所示,hbase启动以后,HMaster进程启动了,几秒钟以后自动关闭,但是HRegionServer进程正常运行: 原因是,hdfs的默认端口号是8020,而我core-site.x ...

  9. 一脸懵逼学习Hive的元数据库Mysql方式安装配置

    1:要想学习Hive必须将Hadoop启动起来,因为Hive本身没有自己的数据管理功能,全是依赖外部系统,包括分析也是依赖MapReduce: 2:七个节点跑HA集群模式的: 第一步:必须先将Zook ...

  10. CentOS6.9安装HDFS

    1.安装依赖包 yum install -y gcc openssh-clients 2.升级glib2.14 升级glibc-2.14用到的rpm 下载地址:https://pan.baidu.co ...