php cpp,【PHP】libphpcpp.so编译
在本地增加了一个新的php扩展后,遇到依赖的libphpcpp.so没有装上,于是自己来编译安装$ php -v
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php70/7.0.20_12/lib/php/extensions/no-debug-non-zts-20151012/thriftphp.so' - dlopen(/usr/local/Cellar/php70/7.0.20_12/lib/php/extensions/no-debug-non-zts-20151012/thriftphp.so, 9): Library not loaded: libphpcpp.so.2.0
Referenced from: /usr/local/Cellar/php70/7.0.20_12/lib/php/extensions/no-debug-non-zts-20151012/thriftphp.so
Reason: image not found in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php70/7.0.20_12/lib/php/extensions/no-debug-non-zts-20151012/thriftphp.so' - dlopen(/usr/local/Cellar/php70/7.0.20_12/lib/php/extensions/no-debug-non-zts-20151012/thriftphp.so, 9): Library not loaded: libphpcpp.so.2.0
Referenced from: /usr/local/Cellar/php70/7.0.20_12/lib/php/extensions/no-debug-non-zts-20151012/thriftphp.so
Reason: image not found in Unknown on line 0
PHP 7.0.20 (cli) (built: Jun 23 2017 07:46:30) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
安装步骤:
1、Clone代码库
git clone https://github.com/CopernicaMarketingSoftware/PHP-CPP.git
2、Mac下需要安装XCode,并运行安装组件
3、Mac下修改编译,修改Makefile 119行
LINKER_FLAGS = -shared
修改为
LINKER_FLAGS = -shared -undefined dynamic_lookup
如不修改就进行编译会遇到以下错误
Undefined symbols for architecture x86_64:
"_OnUpdateString", referenced from:
Php::Ini::fill(_zend_ini_entry_def*, int) in ini.o
…
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [libphpcpp.so.2.0.0] Error 1
4、修改Makefile 179行
${LINKER} ${PHP_LINKER_FLAGS} -Wl,-soname,libphpcpp.so.$(SONAME) -o $@ ${COMMON_SHARED_OBJECTS} ${PHP_SHARED_OBJECTS}
修改为
${LINKER} ${PHP_LINKER_FLAGS} -Wl,-install_name,libphpcpp.so.$(SONAME) -o $@ ${COMMON_SHARED_OBJECTS} ${PHP_SHARED_OBJECTS}
5、make & make install
等运行成功,再来运行看看php -v,不报错了,搞定。
参考文章:
本博客所有文章如无特别注明均为原创。
php cpp,【PHP】libphpcpp.so编译相关推荐
- c语言编译生成cpp,C语言的编译过程
编译: 编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序. 流程:C ...
- C 和 CPP 混合代码cmath编译出错
Visual Studio会将cmath内的一些列函数报错 解决方式:项目->属性->配置属性->C/C++ ->高级->编译为->选择编译为C++代码即可 转载于 ...
- android.mk 冒号,android学习-ndk-build(androidstudio编译cocos2d-x库的cpp为so文件的解释)
本文不作为ndk初学使用,只是对cpp等c++文件编译成so文件的过程中,参数含义,及ndk配置的解释.使用的技术比较旧. androidStudio使用gradle调用ndk-build工具编译c+ ...
- PointNet++等3D点云中用到的.cu、.cpp文件的编译的简单理解
文章目录 1:cuda-c 2:一个简单的配置流程 3:.cu..cpp的关系 4:混合编译.cu..cpp 5:动态链接库(windows.linux) 6:NVCC学习笔记 7:g++的一些常用命 ...
- GCC 同时编译多个 C/C++ 文件
以下这些操作都可以共用一条 gcc 指令: 将多个 C/C++ 源文件加工为汇编文件或者目标文件: 将多个 C/C++ 源文件或者预处理文件加工为汇编文件或者目标文件: 将多个 C/C++ 源文件.预 ...
- gcc 和 g++ 的联系和区别,使用 gcc 编译 c++
GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...
- 浅谈GCC预编译头技术
浅谈GCC预编译头技术 文/jorge --谨以此文,悼念我等待MinGW编译时逝去的那些时间. 其 实刚开始编程的时候,我是丝毫不重视编译速度之类的问题的,原因很简单,因为那时我用BASICA.后来 ...
- Windows7上使用VS2013编译Caffe源码(不带GPU支持)步骤
1. 从https://github.com/BVLC/caffe/通过git clone下载caffe源码,master分支,版本号为09868ac:$ git clone https: ...
- C++ : 编译单元、声明和定义、头文件作用、防止头文件在同一个编译单元重复引用、static和不具名空间...
转 自:http://www.cnblogs.com/rocketfan/archive/2009/10/02/1577361.html 1. 编译单元:一个.cc或.cpp文件作为一个编译单元,生成 ...
最新文章
- 7-5 顺序存储的二叉树的最近的公共祖先问题(25 分)
- <LINUX内核完全剖析:基于0.12内核> 笔记一
- 快速查询DB Lock的方法
- leetcode475. 供暖器(二分查找)
- 防抖与节流方案_前端ajax优化解决方案
- MsSql.RestApi - 构建ASP.NET REST API的最简单方法
- 百度地图开发实例文章(一)
- 菜鸟涂鸦作品展_No.24
- html ui 下拉列表,html - 如何给样式Material-ui选择字段下拉菜单?
- 佳博标签打印机如何打印条码流水号
- mysql间隙锁_解决MySQL可重复读——详解间隙锁
- IIS发布网站,如此简单
- flutter EventBus
- mysql验证索引正确性_mysql索引测试
- 那些年,兵败高考的大佬们
- 用友T3 批处理开启防火墙 1433 4630端口
- 2020年如何卸载/退出亚信安全防毒墙网络版
- 曙光服务器如何重新设置u盘启动_曙光服务器u盘安装linux系统
- shell脚本——批量创建用户
- python db读写实践
热门文章
- 解决idea中执行maven命令失败的问题
- Could not find com.android.support.constraint:constraint-layout的问题解决
- Import error: no module named cv2 错误解决方法
- 关于解决多台linux服务器间的文件实时同步问题
- Session机制详解及分布式中Session共享解决方案
- 关于MySQL连接Navicat Premium 12失败的解决方法
- windows下本地或者远程连接MYSQL数据库,报1130错误的解决方法
- 解决System.Data.SqlClient.SqlException (0x80131904): Timeout 时间已到的问题
- Eclipse一直building workspace问题解决
- 使用PHP搞定支付宝、微信扫码支付