zoukankan      html  css  js  c++  java
  • windows下编译php7图形库php_ui.dll

     

    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:compilerphpsdkinary-tools 运行phpsdk-vc15-x86.bat

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

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

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

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

    运行 phpsdk_buildtree phpdev 

    这时候 J:compilerphpsdk下面应该会有一个 phpdev 目录

    解压到任意目录

    1. mkdir build && cd build   
    2. cmake -G"NMake Makefiles" NDEBUG ..  
    mkdir build && cd build 
    cmake -G"NMake Makefiles" NDEBUG ..
    1. 打开  
    2. CMakeFileslibui.diruild.make:1298  
    3.     resources.rc.* 改成 resources.rc.res  
    打开
    CMakeFileslibui.dirbuild.make:1298
    	resources.rc.* 改成 resources.rc.res
    cmake --build .
    1. libui-alpha3.5uildout  
    2. outlibui.lib 和 outlibui.res 复制到 J:compilerphpsdkphpdevvc15x64phpdevvc15x64depslib  
    3. libui-alpha3.5  
    4. ui.h 复制到 J:compilerphpsdkphpdevvc15x64phpdevvc15x64depsinclude  
    5. ui_darwin.h 复制到 J:compilerphpsdkphpdevvc15x64phpdevvc15x64depsinclude  
    6. ui_unix.h 复制到 J:compilerphpsdkphpdevvc15x64phpdevvc15x64depsinclude  
    7. ui_windows.h 复制到 J:compilerphpsdkphpdevvc15x64phpdevvc15x64depsinclude  
    libui-alpha3.5uildout
    outlibui.lib 和 outlibui.res 复制到 J:compilerphpsdkphpdevvc15x64phpdevvc15x64depslib
    libui-alpha3.5
    ui.h 复制到 J:compilerphpsdkphpdevvc15x64phpdevvc15x64depsinclude
    ui_darwin.h 复制到 J:compilerphpsdkphpdevvc15x64phpdevvc15x64depsinclude
    ui_unix.h 复制到 J:compilerphpsdkphpdevvc15x64phpdevvc15x64depsinclude
    ui_windows.h 复制到 J:compilerphpsdkphpdevvc15x64phpdevvc15x64depsinclude

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

    1. pthreadVC2.lib 复制到 J:compilerphpsdkphpdevphpdevvc15x64depslib  
    pthreadVC2.lib 复制到 J:compilerphpsdkphpdevphpdevvc15x64depslib

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

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

    将这个文件复制到 

    1. J:compilerphpsdkphpdevphpdevvc15x64depsinclude  
    J:compilerphpsdkphpdevphpdevvc15x64depsinclude

    下载 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:compilerphpsdkphpdevvc15x64php-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
  • 相关阅读:
    《法老的宝藏》读后感 读书笔记
    《缘缘堂随笔》读后感 读书笔记
    Appium-Python3--UI自动化-[-3-]-元素定位-获取APP中的toast,判断该元素是否存在
    Appium-Python3--UI自动化-[-2-]-启动一款app演示
    Appium-python--UI自动化-[-1-]-环境搭建
    四十四、九九乘法表
    二十、接口测试汇总(二)
    Jenkins-[--5--]-启动时报错:consider increasing the maximum size of the cache. After eviction approximately [10,239] KB of data
    十九、RF接口测试汇总(一)
    十八、RF中selenium2library构造函数中参数解释
  • 原文地址:https://www.cnblogs.com/it-tsz/p/10684305.html
Copyright © 2011-2022 走看看