当前位置: 首页 > 后端技术 > PHP

最后的准备工作就是编译zendAPI

时间:2023-03-30 00:30:10 PHP

操作系统。我们假设它是类unix操作系统,在非源码文件夹中编译。创建工作目录cd~/mkdirworkspacecdworkspacemkdirbuild-zendapi获取源码。可以直接clone指定的分支,比如master分支。至此zendAPI发布了一个版本zapi-0.0.2-snapshot。gitclonehttps://github.com/qcoreteam/zendapi.gitzendapidevelgitcheckoutmaster默认参数编译如果你的PHP安装在标准路径下,你可以使用如下命令编译cdbuild-zendapicmake../zendapidevel安装到具体路径,可以用下面的名字编译cdbuild-zendapicmake-DCMAKE_INSTALL_PREFIX=/usr/local/zapi../zendapidevel如果你的PHP没有安装在标准路径下,假设你安装在/usr/local/php-7.1.5目录,那么可以使用如下命令编译cdbuild-zendapicmake-DZAPI_OPT_PHP_ROOT_PATH=/usr/local/php-7.1.5../zendapidevel如果要指定额外的选项参数对于编译器,例如,你想用c++14标准编译,你可以使用下面的命令来编译cdbuild-zendapicmake-DCMAKE_CXX_FLAGS="-std=c++14"../zendapidevel如果你想用特定版本的编译器编译,比如我自己,我编译了clang3.5自己编译,根据路径/usr/local/llvm-3.5/bin/clang++,这个路径不在PATH环境变量中,那么我们可以使用如下命令编译cdbuild-zendapicmake-DCMAKE_C_COMPILER=/usr/local/llvm-3.5/bin/clang\-DCMAKE_CXX_COMPILER=/usr/local/llvm-3.5/bin/clang++../zendapidevel现在我假设我使用以下命令在我的本地机器上编译,PHP安装在/usr/local/php7/,操作系统为MacOScmake-DCMAKE_C_COMPILER=/usr/local/bin/gcc-6\-DCMAKE_CXX_COMPILER=/usr/local/bin/g++-6-DCMAKE_BUILD_TYPE=Debug../zendapidevel如果正常的话,您将看到如下的结果------------------------------------------------------------------------------------感谢使用zendAPI项目,玩得开心!---??-----------------------------------------------------------------------------------ZAPI_VERSION:0.0.1-devel--PHP_INCLUDE_PATH:/usr/local/php7/include--PHP_LIB_PATH:/usr/local/php7/lib/libphp7.dylib--PHP_EXECUTABLE:/usr/local/php7/bin/php--PHP_CONFIG_EXECUABLE:/usr/local/php7/bin/php-config--CMAKE_BUILD_TYPE:调试--CMAKE_BINARY_DIR:~/workspace/build-zendapi--CMAKE_CURRENT_BINARY_DIR:~/workspace/build-zendapi--CMAKE_SOURCE_DIR:~/workspace/zendapidevel--PROJECT_BINARY_DIR:~/workspace/build-zendapi--PROJECT_SOURCE_DIR:~/workspace/zendapidevel--CMAKE_MODULE_PATH:~/workspace/zendapidevel/cmake/modules--CMAKE_COMMAND:/usr/local/Cellar/cmake/3.7.2/bin/cmake--CMAKE_INSTALL_PREFIX:/usr/local--CMAKE_ROOT:/usr/local/Cellar/cmake/3.7.2/share/cmake--CMAKE_SYSTEM:Darwin-16.7.0--CMAKE_SYSTEM_NAME:Darwin--CMAKE_SYSTEM_VERSION:16.7.0--CMAKE_SYSTEM_PROCESSOR:x86_64--CMAKE_SKIP_RPATH:NO--CMAKE_VERBOSE_MAKEFIX/local/bin-usgP++6--CMAKE_CXX_COMPILER6.4.4_COMPILER-CMAKE_CXX_FLAGS:-Wa,-q-Wno-macro-redefined-Wno-deprecated-declarations--CMAKE_AR:/usr/bin/ar--CMAKE_RANLIB:/usr/bin/ranlib------------------------------------------------------------------------------------------配置完成--生成完成--构建文件已写入:~/workspace/build-zendapi如果有错误,可以根据具体的错误信息进行排查。如果解决不了,可以到我们segmentfault技术圈交流讨论。如果没有报错,输入名称进行编译,-j指定编译进程数,make-j根据CPU线程数设置。8如果整个编译过程没有错误,你会看到如下输出。如有错误,请通知我们。[100%]LinkingCXXsharedlibrary../lib/libzapi.dylib[100%]Builttargetzapi最后输入以下命令进行安装makeinstall安装完成后会看到如下输出Installtheproject...--安装配置:“调试”--安装:/usr/local/lib/cmake/zendapi/ZendApiConfig.cmake——正在安装:/usr/local/lib/cmake/zendapi/ZendApiConfigVersion.cmake——正在安装:/usr/local/include/zapi——正在安装:/usr/local/include/zapi/CompilerDetection.h——正在安装:/usr/local/include/zapi/ds——正在安装:/usr/local/include/zapi/ds/ArrayItemProxy.h——正在安装:/usr/local/include/zapi/ds/ArrayVariant.h——正在安装:/usr/local/include/zapi/ds/BoolVariant.h--安装:/usr/local/include/zapi/ds/CallableVariant.h--安装:/usr/local/include/zapi/ds/DoubleVariant。h--安装:/usr/local/include/zapi/ds/internal--安装:/usr/local/include/zapi/ds/internal/ArrayItemProxyPrivate.h--安装:/usr/local/include/zapi/ds/internal/VariantPrivate.h--安装:/usr/local/include/zapi/ds/NumericVariant.h--安装:/usr/local/include/zapi/ds/ObjectVariant.h--安装:/usr/local/include/zapi/ds/StringVariant.h--安装:/usr/local/include/zapi/ds/Variant.h--安装:/usr/local/include/zapi/Global.h--Ins计算:/usr/local/include/zapi/kernel--安装:/usr/local/include/zapi/kernel/Exception.h--安装:/usr/local/include/zapi/kernel/FatalError.h--安装:/usr/local/include/zapi/kernel/Meta.h--安装:/usr/local/include/zapi/kernel/NotImplemented.h--安装:/usr/local/include/zapi/kernel/OrigException.h--安装:/usr/local/include/zapi/kernel/StreamBuffer.h--安装:/usr/local/include/zapi/lang--安装:/usr/local/include/zapi/lang/Argument.h--正在安装:/usr/local/include/zapi/lang/Class.h--正在安装:/usr/local/include/zapi/lang/Constant.h--正在安装:/usr/local/include/zapi/lang/Extension.h--正在安装:/usr/local/include/zapi/lang/Function.h--正在安装:/usr/local/include/zapi/lang/Ini.h--正在安装:/usr/local/include/zapi/lang/Interface.h--安装:/usr/local/include/zapi/lang/internal--安装:/usr/local/include/zapi/lang/internal/ExtensionPrivate.h--安装:/usr/本地/包括/zapi/lang/internal/NamespacePrivate.h--安装:/usr/local/include/zapi/lang/internal/StdClassPrivate.h--安装:/usr/local/include/zapi/lang/Method.h--安装:/usr/local/include/zapi/lang/Namespace.h--安装:/usr/local/include/zapi/lang/Parameters.h--安装:/usr/local/include/zapi/lang/StdClass.h--安装:/usr/local/include/zapi/lang/Type.h--安装:/usr/local/include/zapi/PhpHeaders.h--安装:/usr/local/include/zapi/ProcessorDetection.h--安装:/usr/local/include/zapi/protocol--安装:/usr/local/include/zapi/protocol/AbstractIterator.h--安装:/usr/local/include/zapi/protocol/ArrayAccess.h--安装:/usr/local/include/zapi/protocol/Countable.h--安装:/usr/local/include/zapi/protocol/Interfaces.h--安装:/usr/local/include/zapi/protocol/Serializable.h--安装:/usr/local/include/zapi/protocol/Traversable.h--安装:/usr/local/include/zapi/stdext--安装:/usr/local/include/zapi/stdext/Functional.h--安装:/usr/local/include/zapi/stdext/internal--安装:/usr/local/include/zapi/stdext/internal/FunctionalPrivate.h--安装:/usr/local/include/zapi/stdext/internal/TuplePrivate.h--安装:/usr/local/include/zapi/stdext/Tuple.h--安装:/usr/local/include/zapi/stdext/TypeTraits.h--安装:/usr/local/include/zapi/SystemDetection.h--安装:/usr/local/include/zapi/Typedefs.h--安装:/usr/local/include/zapi/utils--安装:/usr/local/include/zapi/utils/CommonFuncs.h--安装:/usr/local/include/zapi/utils/PhpFuncs.h--安装:/usr/local/include/zapi/Version.h.in--正在安装:/usr/local/include/zapi/vm--正在安装:/usr/local/include/zapi/vm/AbstractClass.h--正在安装:/usr/local/include/zapi/vm/AbstractMember.h--安装:/usr/local/include/zapi/vm/BoolMember.h--安装:/usr/local/include/zapi/vm/Callable.h--安装:/usr/local/包括/zapi/vm/Closure.h--安装:/usr/local/include/zapi/vm/Engine.h--安装:/usr/local/include/zapi/vm/ExecStateGuard.h--安装:/usr/local/include/zapi/vm/FloatMember.h--安装:/usr/local/include/zapi/vm/internal--安装:/usr/local/include/zapi/vm/internal/AbstractClassPrivate.h--安装:/usr/local/include/zapi/vm/internal/AbstractMemberPrivate.h--安装:/usr/local/include/zapi/vm/internal/CallablePrivate.h--安装:/usr/local/include/zapi/vm/InvokeBridge.h--安装:/usr/local/include/zapi/vm/IteratorBridge.h--安装:/usr/local/include/zapi/vm/NullMember.h--安装:/usr/local/include/zapi/vm/NumericMember.h--安装:/usr/local/include/zapi/vm/ObjectBinder.h--安装:/usr/local/include/zapi/vm/Property.h--安装:/usr/local/include/zapi/vm/StringMember.h--安装:/usr/local/include/zapi/vm/ZValMember.h--安装:/usr/local/include/zapi/ZendApi.h--安装:/usr/local/lib/libzapi.0.0.1.dylib——正在安装:/usr/local/lib/libzapi.0.dylib——正在安装:/usr/local/lib/libzapi.dylib——正在安装:/usr/local/lib/cmake/zendapi/ZendApiTargets.cmake--Installing:/usr/local/lib/cmake/zendapi/ZendApiTargets-debug.cmake至此,我们整个安装过程就结束了,玩的开心