小編給大家分享一下Mac編譯安裝Swoole遇到 .h 文件不存在的問(wèn)題怎么辦,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)主要從事做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)巴林左旗,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):189808205751. 其實(shí)我是真的沒(méi)想過(guò)安裝歷程會(huì)這么 Emmm… 怎么描述呢,就是那種其實(shí)你要是說(shuō)難也不難,但是就是也挺惡心,還有就是 Mac 的本機(jī)自帶環(huán)境以及有些文件不自動(dòng)加載引起的各種問(wèn)題。
2.還有就是,這樣的問(wèn)題真的很少資料,所以記錄一下。
并且是 Xcode 處于未安裝狀態(tài)。
本地自帶 PHP 版本 7.3
本地的環(huán)境配置工具,用的是 MxSrvs ,一款 Mac 版 PHP 開(kāi)發(fā)環(huán)境。工具官網(wǎng):http://www.xsrvs.com/ 工具雖小,但是五臟俱全,開(kāi)發(fā)完全足夠。
官網(wǎng)需求
這里多說(shuō)一句,雖然官方?jīng)]有標(biāo)注 autoconf 需要多少版本以上,但是編譯安裝的時(shí)候需要 2.68 及以上。
從 Git 下載源碼包 下載地址,我下載的是
因?yàn)槭潜镜?,所以我就把下載的包直接進(jìn)入控制臺(tái)目錄了,就不寫(xiě)前面的什么CD目錄之類的了,然后運(yùn)行下面的代碼,因?yàn)槲乙幾g到工具里的 PHP 版本中,所以用的是工具提供的phpzie
。
/Applications/MxSrvs/bin/php/bin/phpize./configure \--enable-openssl \--enable-http2 \make && sudo make install
不出意外的遇到了問(wèn)題 1,這個(gè)問(wèn)題,百度、必應(yīng) 都沒(méi)找到相關(guān)的東西,然后問(wèn)了一些群友,有的人說(shuō)是因?yàn)榘姹咎叩膯?wèn)題,說(shuō)最合適 Swoole 的版本是 7.2 版本。
最終,指向問(wèn)題本質(zhì)的回答給了我靈感,大致的回答的意思是,從 macOs 10.10 以后版本開(kāi)始, Mac 自帶的 PHP 版本,取消了部分文件夾,也就是說(shuō),自帶的PHP沒(méi)有編譯安裝所需要的文件。
知道原因,其實(shí)就很好解決了,畢竟我們開(kāi)發(fā),沒(méi)有幾個(gè)用自帶環(huán)境的,所以,只需要考慮,怎么將工具使用的 PHP 版本,動(dòng)態(tài)到系統(tǒng)環(huán)境變量即可。由于以前設(shè)置過(guò)系統(tǒng)環(huán)境變量路徑,稍微有點(diǎn)映象,就百度了設(shè)置環(huán)境變量的方法。
其實(shí)就是通過(guò) .bash_profile 來(lái)設(shè)置環(huán)境變量
但是,你重啟之后,每次都需要在命令行輸入
source ~/.bash_profile
來(lái)使之生效,這樣就比較麻煩,我們可以利用 Mac 自動(dòng)加載 .zshrc 文件的機(jī)制,把
source ~/.bash_profile
添加到文件尾,使之每次不需要人工輸入。達(dá)到動(dòng)態(tài)設(shè)置環(huán)境變量的目的。
至此,第一個(gè)問(wèn)題解決。
繼續(xù)第二次安裝,然后出現(xiàn)了第二個(gè)問(wèn)題,解決這個(gè)問(wèn)題,就比較繞了。
其實(shí)本質(zhì)上遇到的問(wèn)題都是同樣的,都是因?yàn)?Mac 自帶的軟件,都沒(méi)有這個(gè) .h 的頭文件,所以才出現(xiàn)這些問(wèn)題的,第一個(gè)問(wèn)題,通過(guò)綁定到工具的變量,實(shí)現(xiàn)了變更環(huán)境變量,算是取巧的一個(gè)處理方法,openssl 這個(gè)擴(kuò)展講道理還是用到的地方很多的,所以就安裝在自己的機(jī)器整體環(huán)境中。
在安裝 openssl 之前,需要先安裝 Xcode ,這一步,我沒(méi)有省去,好像在 Mac 上好多的環(huán)境變量都跟 Xcode 文件目錄掛鉤,著實(shí)惡心,但是也不能不安裝,安裝完之后,我們?cè)侔惭b openssl ,命令行輸入
brew install openssl
如果檢測(cè)到你的已經(jīng)存在,會(huì)提示你重新安裝可以運(yùn)行
brew reinstall openssl@1.1
其中有一句,就是讓把這個(gè)添加到
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
把這個(gè)也添加之前修改過(guò)的 .zshrc 文件即可。
接下來(lái)就是重頭戲了。說(shuō)白了就是簡(jiǎn)單的粘貼復(fù)制,把 openssl 的文件夾,路徑為
/usr/local/Cellar/openssl@1.1/1.1.1h/include/openssl
復(fù)制到
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/
目錄下即可
至此,第二個(gè)問(wèn)題解決。
然后再運(yùn)行編譯 Swoole ,等待編譯完成就可以了
以上是“Mac編譯安裝Swoole遇到 .h 文件不存在的問(wèn)題怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!