真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Windows上編譯PHP的MagickWand擴(kuò)展-創(chuàng)新互聯(lián)

首先這是一個(gè)漫長(zhǎng)的過程,嘗試編譯此插件的用戶一定要有耐心。大致流程可以劃分為:

做網(wǎng)站、網(wǎng)站設(shè)計(jì),成都做網(wǎng)站公司-創(chuàng)新互聯(lián)已向上千企業(yè)提供了,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)絡(luò)營(yíng)銷等服務(wù)!設(shè)計(jì)與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗(yàn),合理的價(jià)格為您打造企業(yè)品質(zhì)網(wǎng)站。
  1. 編譯ImageMagick

  2. 編譯MagickWand

關(guān)于PHP的版本。Windows的PHP是用哪個(gè)版本的VC編譯的,這個(gè)一定要先弄清楚,例如我的是VC9編譯的,那么一定要下載對(duì)應(yīng)的VC來編譯。例如VC9對(duì)應(yīng)VS2008,VC10對(duì)應(yīng)VS2010。

下面切入正題:

  1. 首先下載PHP的源代碼,注意你下載的源代碼也要跟你Windows上的PHP可執(zhí)行文件是同一個(gè)版本。例如我的是5.4.31RC1。

  2. 下載ImageMagick的源代碼,我寫這篇文章的時(shí)候最新版是ImageMagick-6.8.9

  3. 下載MagickWandforPHP的源代碼,我寫這篇文章的時(shí)候最新版是MagickWandForPHP-1.0.9-2.zip
    (注:以上源代碼建議都從官方下載,并且如果有對(duì)應(yīng)的windows版本的,都下載windows版本的。如果沒有明顯標(biāo)記windows版本的,那么.zip格式的壓縮包通常就默認(rèn)是windows版本的源代碼。)

  4. 首先編譯 MagickWand
    MagickWand的源代碼目錄下有一個(gè)叫做VisualMagick的目錄,這里面存放了VS的工程文件。雙擊,升級(jí)到你所用的VS版本的解決方案,然后打開。
    第一次編譯,難免會(huì)遇到錯(cuò)誤,如果最后編譯有5個(gè)或者5個(gè)以上的項(xiàng)目失敗了,那就一定要檢查,然后修改錯(cuò)誤以后重新編譯。
    我第一次編譯的時(shí)候有5個(gè)項(xiàng)目沒有編譯成功,導(dǎo)致一些CORE開頭的lib文件沒能生成。正確的情況下, 應(yīng)該是每一個(gè)子工程都有一個(gè)lib文件和對(duì)應(yīng)的dll文件生成的。其中CORE開頭的工程尤為重要。如果最后有一個(gè)IM_MOD開頭的工程沒有成功,那可能對(duì)后面的影響不大,可以忽略。

    一般來收,工程文件沒有編譯成功,可能是互相關(guān)聯(lián)的,例如工程A的編譯,可能需要工程B的編譯出來的lib文件作為支持。我第一次編譯的時(shí)候,失敗原因最后發(fā)現(xiàn)是其中一個(gè)和多語(yǔ)言功能有關(guān)的模塊的源文件,里面有各國(guó)語(yǔ)言文字,但是這個(gè)源文件編碼是不帶BOM的UTF8,根據(jù)微軟官方的解釋,在VS里面使用這種UTF8的錯(cuò)誤是不可預(yù)知的,用MadEdit加上了BOM,問題解決,最后只剩下一個(gè)MOD工程沒有編譯成功,可以忽略了。

  5. 然后編譯MagickWand
    首先新建一個(gè)解決方案,選擇win32的dll工程(空項(xiàng)目),然后導(dǎo)入MagickWand下的對(duì)應(yīng)的c文件和h文件。

    加入對(duì)應(yīng)的包含文件目錄:
    PHP源碼所在目錄
    PHP源碼所在目錄下的Zend目錄
    PHP源碼所在目錄下的main目錄
    PHP源碼所在目錄下的TSRM目錄
    ImageMagick源碼所在目錄
    ImageMagick源碼所在目錄下的magick目錄

    加入對(duì)應(yīng)的庫(kù)文件目錄:
    PHP可執(zhí)行文件所在目錄
    PHP可執(zhí)行文件所在目錄下的extras目錄
    PHP可執(zhí)行文件所在目錄下的dev目錄
    ImageMagick源碼所在目錄下的VisualMagick\Lib目錄

    進(jìn)入工程文件的屬性,展開 C/C++ > 預(yù)處理器 欄目,在預(yù)處理器定義中加入如下內(nèi)容:
    ZEND_DEBUG=0
    WIN32
    NDEBUG
    _WINDOWS
    _USRDLL
    MAGICKWAND_EXPORTS
    COMPILE_DL_MAGICKWAND
    ZEND_WIN32
    PHP_WIN32
    HAVE_MAGICKWAND=1
    LIBZEND_EXPORTS

    進(jìn)入 連接器 > 輸入 欄目,在附加依賴項(xiàng)中加入如下內(nèi)容:
    odbc32.lib
    odbccp32.lib
    php5embed.lib
    CORE_RL_wand_.lib
    CORE_RL_zlib_.lib
    CORE_RL_webp_.lib
    CORE_RL_ttf_.lib
    CORE_RL_tiff_.lib
    CORE_RL_png_.lib
    CORE_RL_pixman_.lib
    CORE_RL_openjpeg_.lib
    CORE_RL_Magick++_.lib
    CORE_RL_magick_.lib
    CORE_RL_lqr_.lib
    CORE_RL_libxml_.lib
    CORE_RL_lcms_.lib
    CORE_RL_jpeg_.lib
    CORE_RL_jp2_.lib
    CORE_RL_jbig_.lib
    CORE_RL_glib_.lib
    CORE_RL_ffi_.lib
    CORE_RL_croco_.lib
    CORE_RL_cairo_.lib
    CORE_RL_bzlib_.lib.
    CORE_RL_librsvg_.lib

    此時(shí)就可以開始生成解決方案了,中間肯定會(huì)遇上錯(cuò)誤,大概是C++的一個(gè)編譯器的斷點(diǎn),找到對(duì)應(yīng)源代碼注釋掉。(MagickWand for Windows萬年不更新代碼了,只有根據(jù)錯(cuò)誤去一個(gè)個(gè)調(diào)整,如果遇上其他錯(cuò)誤,解決方案也類似)

  6. 最后生成的dll文件就是標(biāo)注PHP的擴(kuò)展文件了,如何使用不再贅述。最后有幾點(diǎn)要說明的:

    首先是這個(gè)方法默認(rèn)都是動(dòng)態(tài)鏈接,所以最后可能需要在我們的環(huán)境變量中加入ImageMagick源碼所在目錄下的VisualMagick\Bin目錄,也就是ImageMagick編譯出來的那些Dll所在的目錄,才能正確加載這個(gè)PHP擴(kuò)展,當(dāng)然用戶在編譯的時(shí)候也可以選擇全靜態(tài)連接。

    其次是,下載的PHP源碼里,很有可能有一處宏定義:#define PHP_COMPILER_ID "VC9",如果遇上了這種情況,改成你自己的編譯器版本即可,否則最后加載的時(shí)候可能會(huì)提示版本無法對(duì)接。

    最后,一定要用NTS,也就是非線程安全編譯,一般來說Windows的PHP一定要用非線程安全版本。

    

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


文章名稱:Windows上編譯PHP的MagickWand擴(kuò)展-創(chuàng)新互聯(lián)
文章URL:http://weahome.cn/article/isedg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部