0

0

讲解windows下编译php7图形库php_ui.dll

coldplay.xixi

coldplay.xixi

发布时间:2021-02-26 09:28:18

|

2803人浏览过

|

来源于CSDN

转载

讲解windows下编译php7图形库php_ui.dll

推荐(免费):PHP7

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

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

编译环境搭建

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

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

2.php7的sdk php-sdk 

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

具体环境搭建

安装vc15编译器

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

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

http://landinghub.visualstudio.com/visual-cpp-build-tools

点击 下载地址 到下载页面 在下面找到 "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 目录

下载 libui

解压到任意目录

mkdir build && cd build 
cmake -G"NMake Makefiles" NDEBUG ..
打开
CMakeFiles\libui.dir\build.make:1298
	resources.rc.* 改成 resources.rc.res
cmake --build .
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 点击到下载页面

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

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

立即学习PHP免费学习笔记(深入)”;

Delphi 7应用编程150例 全书内容 CHM版
Delphi 7应用编程150例 全书内容 CHM版

Delphi 7应用编程150例 CHM全书内容下载,全书主要通过150个实例,全面、深入地介绍了用Delphi 7开发应用程序的常用方法和技巧,主要讲解了用Delphi 7进行界面效果处理、图像处理、图形与多媒体开发、系统功能控制、文件处理、网络与数据库开发,以及组件应用等内容。这些实例简单实用、典型性强、功能突出,很多实例使用的技术稍加扩展可以解决同类问题。使用本书最好的方法是通过学习掌握实例中的技术或技巧,然后使用这些技术尝试实现更复杂的功能并应用到更多方面。本书主要针对具有一定Delphi基础知识

下载
#define HAVE_STRUCT_TIMESPEC
#define _TIMESPEC_DEFINED

将这个文件复制到 

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

configure --disable-all --enable-cli --enable-fd-setsize=2048 --enable-sanitizer --with-ui=shared --with-curl=shared --disable-cgi
扩展
--disable-zts
--disable-cgi   编译出 windows 版本和 php-cgi.exe  
--disable-zts   nts 非线程安全  
--enable-shmop=shared   以dll 方式编译 php shmop 扩展
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下面是运行截图


下面是编译好了的

点击到下载页面

.dll文件大全
.dll文件大全

.dll文件缺失怎么办?.dll文件在哪下载?不用担心,这里为大家提供了所有的.dll文件下载,无论用户丢失的是什么.dll文件,在这里都能找到。用户保存后,在网盘搜索dll文件全称即可查找下载!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

530

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

514

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

658

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

5881

2023.08.17

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

492

2023.09.01

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

219

2023.09.04

Js中concat和push的区别
Js中concat和push的区别

Js中concat和push的区别:1、concat用于将两个或多个数组合并成一个新数组,并返回这个新数组,而push用于向数组的末尾添加一个或多个元素,并返回修改后的数组的新长度;2、concat不会修改原始数组,是创建新的数组,而push会修改原数组,将新元素添加到原数组的末尾等等。本专题为大家提供concat和push相关的文章、下载、课程内容,供大家免费下载体验。

240

2023.09.14

js截取字符串的方法介绍
js截取字符串的方法介绍

JavaScript字符串截取方法,包括substring、slice、substr、charAt和split方法。这些方法可以根据具体需求,灵活地截取字符串的不同部分。在实际开发中,根据具体情况选择合适的方法进行字符串截取,能够提高代码的效率和可读性 。

296

2023.09.21

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

45

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号