目录
前言
本机环境
重点问题
成果
首页 php框架 Swoole Mac 编译安装 Swoole 遇到 .h 文件不存在问题解决方案

Mac 编译安装 Swoole 遇到 .h 文件不存在问题解决方案

Nov 05, 2020 pm 02:27 PM
mac swoole

前言

       1. 其实我是真的没想过安装历程会这么 Emmm… 怎么描述呢,就是那种其实你要是说难也不难,但是就是也挺恶心,还有就是 Mac 的本机自带环境以及有些文件不自动加载引起的各种问题。

       2.还有就是,这样的问题真的很少资料,所以记录一下。


本机环境


并且是 Xcode 处于未安装状态。
本地自带 PHP 版本 7.3
本地的环境配置工具,用的是 MxSrvs ,一款 Mac 版 PHP 开发环境。工具官网:http://www.xsrvs.com/ 工具虽小,但是五脏俱全,开发完全足够。

重点问题

1. 出现找不到 PHP 的头部文件

2. 出现找不到 Openssl 的头部文件(报错信息跟 PHP 的差不多)

准备工作

官网需求

       这里多说一句,虽然官方没有标注 autoconf  需要多少版本以上,但是编译安装的时候需要 2.68 及以上。

从 Git 下载源码包 下载地址,我下载的是

安装过程

       因为是本地,所以我就把下载的包直接进入控制台目录了,就不写前面的什么CD目录之类的了,然后运行下面的代码,因为我要编译到工具里的 PHP 版本中,所以用的是工具提供的 phpzie

/Applications/MxSrvs/bin/php/bin/phpize./configure \--enable-openssl \--enable-http2  \make && sudo make install
登录后复制

不出意外的遇到了问题 1,这个问题,百度、必应 都没找到相关的东西,然后问了一些群友,有的人说是因为版本太高的问题,说最合适 Swoole 的版本是 7.2 版本。

最终,指向问题本质的回答给了我灵感,大致的回答的意思是,从 macOs 10.10 以后版本开始, Mac 自带的 PHP 版本,取消了部分文件夹,也就是说,自带的PHP 没有编译安装所需要的文件

知道原因,其实就很好解决了,毕竟我们开发,没有几个用自带环境的,所以,只需要考虑,怎么将工具使用的 PHP 版本,动态到系统环境变量即可。由于以前设置过系统环境变量路径,稍微有点映象,就百度了设置环境变量的方法。
其实就是通过 .bash_profile 来设置环境变量

但是,你重启之后,每次都需要在命令行输入

source ~/.bash_profile
登录后复制
登录后复制

来使之生效,这样就比较麻烦,我们可以利用 Mac 自动加载 .zshrc 文件的机制,把

source ~/.bash_profile
登录后复制
登录后复制

添加到文件尾,使之每次不需要人工输入。达到动态设置环境变量的目的。

至此,第一个问题解决。

继续第二次安装,然后出现了第二个问题,解决这个问题,就比较绕了。
其实本质上遇到的问题都是同样的,都是因为 Mac 自带的软件,都没有这个 .h 的头文件,所以才出现这些问题的,第一个问题,通过绑定到工具的变量,实现了变更环境变量,算是取巧的一个处理方法,openssl 这个扩展讲道理还是用到的地方很多的,所以就安装在自己的机器整体环境中。
在安装 openssl 之前,需要先安装 Xcode ,这一步,我没有省去,好像在 Mac 上好多的环境变量都跟 Xcode 文件目录挂钩,着实恶心,但是也不能不安装,安装完之后,我们再安装 openssl ,命令行输入

brew install openssl
登录后复制


如果检测到你的已经存在,会提示你重新安装可以运行

brew reinstall openssl@1.1
登录后复制


其中有一句,就是让把这个添加到

If you need to have openssl@1.1 first in your PATH run:  echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc
登录后复制

把这个也添加之前修改过的 .zshrc 文件即可。
接下来就是重头戏了。说白了就是简单的粘贴复制,把 openssl 的文件夹,路径为

/usr/local/Cellar/openssl@1.1/1.1.1h/include/openssl
登录后复制

复制到

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/
登录后复制

目录下即可
至此,第二个问题解决。

然后再运行编译 Swoole ,等待编译完成就可以了

成果


打完收工!

以上是Mac 编译安装 Swoole 遇到 .h 文件不存在问题解决方案的详细内容。更多信息请关注PHP中文网其他相关文章!

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

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

3 招教你轻松自定义 Mac 计算机名、主机名和 Bonjour 名称 3 招教你轻松自定义 Mac 计算机名、主机名和 Bonjour 名称 Mar 06, 2024 pm 12:20 PM

许多Mac用户往往习惯保留设备的默认名称,可能从未考虑过更改。很多人选择沿用初始设置时的名称,例如“张三的MacBookAir”或简单的“iMac”。学会如何修改Mac的名称是一项非常实用的技能,尤其是在拥有多台设备时,可以帮助你快速区分和管理它们。接下来,我们将一步步教你如何在macOS系统中更改计算机名称、主机名和Bonjour名称(本地主机名)。为什么要更改Mac名称?修改Mac名称不仅能彰显个性,还能有助于提升使用体验:个性化你的Mac:默认名称可能并不符合你的口味,换一个自己喜欢的名字

pkg文件安装mac? pkg文件安装mac? Feb 20, 2024 pm 03:21 PM

前言:今天本站来给各位分享关于pkg文件安装mac的相关内容,如果能正好解决你现在面临的问题,别忘了关注本站,现在开始吧!macos过往版本pkg无法安装升级操作系统:如果您的笔记本电脑正在使用较老的操作系统版本,建议升级到最新的操作系统版本。因为较老的版本可能无法支持安装最新的macOS系统。在磁盘工具中选择“抹掉”,然后在格式中选择Macos扩展,不要勾选加密选项,也不要选择apfs格式,最后点击“抹掉”按钮,这样就可以解决无法完成macOS安装的问题。将应用程序的图标拖到以App开头的文件

微信mac如何设置语音消息自动转成文字-设置语音转成文字的方法 微信mac如何设置语音消息自动转成文字-设置语音转成文字的方法 Mar 19, 2024 am 08:28 AM

近日有一些小伙伴咨询小编微信mac如何设置语音消息自动转成文字?下面就为大家带来了微信mac设置语音消息自动转成文字的方法,有需要的小伙伴可以来了解了解哦。第一步:首先,打开Mac版微信。如图:第二步:接着,点击『设置』。如图:第三步:然后,点击『通用』。如图:第四步:再勾选『聊天中的语音消息自动转成文字』选项即可。如图:第五步:最后,关闭窗口即可。如图:

在Mac上将HEIC照片转换为JPG的3种方法 在Mac上将HEIC照片转换为JPG的3种方法 Mar 15, 2024 pm 08:43 PM

默认情况下,iPhone以HEIC格式从相机拍摄照片。HEIC代表高效图像容器,可以容纳比PNG或JPG文件更多的像素数据,与其他格式相比,在iPhone存储上占用的空间显着减少。这些文件在iPhone上效果最佳,但并未在互联网上得到广泛接受,因为当您与非Apple设备共享这些文件时,它们通常会导致图片模糊/有颗粒感。为了确保HEIC图片在其他设备上可兼容,可能需要将其转换为JPG格式。本文将介绍在Mac上将HEIC图像转换为JPG的方法。如何在Mac上将HEIC照片转换为JPG[3种方法]方法

mac配置文件不生效? mac配置文件不生效? Feb 20, 2024 pm 02:00 PM

导读:本文本站来给大家介绍有关mac配置文件不生效的相关内容,希望对大家有所帮助,一起来看看吧。Mac下环境变量无法生效的解决方案在Mac系统中配置环境变量后,发现只在当前终端有效,一旦切换终端就会失效。经过查询发现,Mac系统预装了一个称为终极shell-zsh的工具,并且环境变量的读取需要在.zshrc文件中进行设置。2、为了让我们的配置文件生效,只能在.zshrc中添加上面的配置。如果不做上述设置,你就会发现,只有当你每次source~/.bash_profile后才会生效,下次重新打开z

swoole协程如何在laravel中使用 swoole协程如何在laravel中使用 Apr 09, 2024 pm 06:48 PM

Laravel 中使用 Swoole 协程可以并发处理大量请求,优势包括:并发处理:允许同时处理多个请求。高性能:基于 Linux epoll 事件机制,高效处理请求。低资源消耗:所需服务器资源更少。易于集成:与 Laravel 框架无缝集成,使用简单。

如何在 Mac 上使用 GUID 格式化驱动器 如何在 Mac 上使用 GUID 格式化驱动器 Apr 12, 2024 am 09:13 AM

Mac系统的格式化驱动器对于正常运行至关重要。它有助于防止各种系统问题,并使您的Mac整体更加稳定。虽然自然Mac支持各种分区方案,但与其他选项相比,GUID提供了更现代和更通用的功能。对于较新的Mac也是必不可少的,并支持更大的驱动器,为您提供最佳的兼容性和稳定性。本指南将深入探讨如何在macOS上使用GUID格式化驱动器。也就是说,让我们开始吧。为什么GUID对macOS安装很重要GUID(完整形式的全局唯一标识符)是一种分区方案,有助于安装和运行macOS操作系统。它是比传统的MBR(主引

可靠消息人士称,MacBook Pro、iMac 将于今年晚些时候进行 M4 升级,MacBook Air 将于 2025 年春季进行升级 可靠消息人士称,MacBook Pro、iMac 将于今年晚些时候进行 M4 升级,MacBook Air 将于 2025 年春季进行升级 Jun 25, 2024 am 06:35 AM

自从采用 Apple M4 的 OLED iPad Pro 系列上市以来,Apple Silicon 爱好者就一直热切地等待 Mac 系列中 M4 SoC 的到来。无可否认,M4 在计算和图形性能方面都实现了重大飞跃 - Leapfr

See all articles