资讯专栏INFORMATION COLUMN

zendAPI 的 CMake 参数详解

walterrwu / 3708人阅读

摘要:类型字符串默认值无描述这个变量的值将会传递给编译器比如等等参数。类型字符串默认值无描述参考当可执行文件在非主流的路径下的时候可以指定这个变量,帮助编译系统进行探测。

zendAPI 是采用 CMake 进行编译的,我们在项目中定义了一些 CMake 的函数,变量和选项,下面我们在这篇文章中对这些进行详细的说明,有助于节省大家的时间。

CMake 内置重要变量 CMAKE_INSTALL_PREFIX

类型:字符串
默认值:/usr/local
描述:编译完成之后,软件包安装的路径

CMAKE_BUILD_TYPE

类型:字符串
默认值:空字符串
描述:控制软件编译的类型,可能的取值:

Debug 调试模式,开发的时候指定

Release 发布模式,发布软件包的时候指定

RelWithDebInfo

MinSizeRel

BUILD_SHARED_LIBS

类型:布尔型
默认值:无
描述:指定为 ON 的时候,项目中的库默认编译成动态链接库,除非特定的库重新指定了这个选项。

CMAKE_CXX_FLAGS

类型:字符串
默认值:无
描述:这个变量的值将会传递给 C++ 编译器, 比如 -std=c++11 等等参数。

自定义选项 (option) ZAPI_OPT_ENABLE_TESTS

类型:布尔型
默认值:OFF
描述:控制 zendAPI 是否编译单元测试,如果值为 ON 则开启,OFF 则关闭。

ZAPI_OPT_ENABLE_VERBOSE_DEBUG

类型:布尔型
默认值:OFF
描述:控制 zendAPI 是否输出一些调试信息,这个选项只在 Debug 模式下指定,在其他模式下请设置为 OFF

ZAPI_OPT_PHP_ROOT_PATH

类型:字符串
默认值:无
描述:当我们开发的时候 PHP 的安装路径没有在标准的路径下,zendAPI 的编译系统可能探测不到您的 PHP, 这个时候您可以将您的自定义的路径指定到这个变量。
例如我们编译的 PHP 版本是 7.1.5, 我们的安装路径可能指定为 /usr/local/php-7.1.5, 那么我们可以在 CMake 命令行指定 cmake -DZAPI_OPT_PHP_ROOT_PATH=/usr/local/php-7.1.5

ZAPI_OPT_PHP_INCLUDE_PATH

类型:字符串
默认值:无
描述:在一些 Linux 发行版里面,有时候头文件会被安装到一个特殊的路径中, 比如 Ubuntu 里面有可能在 /usr/local/include/php/ 后面跟有一串数字,这个时候 zendAPI 的编译系统探测不到 PHP的头文件,这个时候您可以指定这个选项,指定您系统中特殊的 PHP 头文件路径。

ZAPI_OPT_PHP_LIB_PATH

类型:字符串
默认值:无
描述:参考 ZAPI_OPT_PHP_INCLUDE_PATHlibphp 库在非主流的路径下的时候可以指定这个变量,帮助 zendAPI 编译系统进行探测。

ZAPI_OPT_PHP_BIN_PATH

类型:字符串
默认值:无
描述:参考 ZAPI_OPT_PHP_INCLUDE_PATHPHP 可执行文件在非主流的路径下的时候可以指定这个变量,帮助 zendAPI 编译系统进行探测。

高级

以下的文档如果不是研究 zendAPI 源码就不需要了解。

自定义选项 (option)

等待完善 ...

自定义变量

等待完善 ...

自定义函数

等待完善 ...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25888.html

相关文章

  • hellozapi项目CMake编译脚本详解-CPP开发PHP之旅第二节

    摘要:项目编译脚本整体代码编译脚本逐行解说我们推荐的版本是这里如果您的版本低于的话,会报错。这里我们定义我们的项目名称为使用的编程语言为。这行代码的意思就是指示编译器使用的标准对代码进行编译。在项目中我们主要有三个文件,在这里进行添加。 原文链接:http://www.zendapi.org/manual... 因为 zendAPI 采用的是 CMake 进行编译,所以我们的 helloza...

    Kerr1Gan 评论0 收藏0
  • 最后准备,编译 zendAPI

    摘要:操作系统我们假定是类操作系统,采用非源码文件夹编译。创建工作目录获取源码您可以直接指定的分支,比如分支。到目前为止发布了一个版本。 操作系统我们假定是类 unix 操作系统,采用非源码文件夹编译。 创建工作目录 cd ~/ mkdir workspace cd workspace mkdir build-zendapi 获取源码 您可以直接 clone 指定的分支,比如 master ...

    forsigner 评论0 收藏0
  • hello zapi 项目准备工作-CPP开发PHP之旅第一节

    摘要:原文地址在新手学堂里面,我们将从零基于开发一个简单的扩展,这个扩展的名字叫做现在我们着手准备开发需要的环境吧。 原文地址: http://www.zendapi.org/manual... 在新手学堂里面,我们将从零基于 zendAPI 开发一个简单的 PHP 扩展,这个扩展的名字叫做 hellozapi , 现在我们着手准备开发需要的环境吧。 demo 的项目库地址 https://...

    khs1994 评论0 收藏0
  • C++ 开发 PHP 7 扩展之模块入口定义

    摘要:每一个扩展必须有一个描述对象,在中我们类主要的作用主要完成这个功能。表示我们扩展导出符号给其他库使用。文章使用的编程文档的引用连接参考手册参考手册原文链接开发扩展之模块入口定义 zendAPI 项目不提供任何底层的功能,只是封装了 zend engine 提供的功能,对上提供一个易用的编程接口。这篇文章中,我们将介绍 C++ 世界与 C 世界交汇的地方,在这里也是 zendAPI 的接...

    dabai 评论0 收藏0
  • polarphp:一个新 PHP 语言运行时环境

    摘要:项目介绍是一个全新的语言的运行时环境,基于目前最新的进行打造,支持最新的语言规范,同时提供了自己的运行时标准库。同样也在的基础上进行打造,实现了一个除开发之外的一个全新的运行环境。发布核心虚拟机的镜像。整合运行时框架。 showImg(https://segmentfault.com/img/bVbnQXK); polarphp 项目介绍 polarphp是一个全新的PHP语言的运行时...

    宋华 评论0 收藏0

发表评论

0条评论

walterrwu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<