close
iconv 和 gettext 這兩個 Extensions 必須一起編譯,所以就一同介紹。
要注意的是,目前沒辦法拿最新的版本來編譯,我測試過可以成功的版本號碼如下:
  • iconv:libiconv-1.9.2.tar.gz
  • gettext:gettext-0.14.6.tar.gz
在下載源碼時請務必注意版本號碼,下面介紹編譯步驟:
  1. 源碼可從每個 GNU FTP Mirror 取得:FTP 列表。
  2. 下載後解開至 D:\Work\test\iconv、D:\Work\test\gettext
  3. 切換目錄至 D:\Work\test\iconv,執行:
    • nmake -f Makefile.msvc NO_NLS=1 MFLAGS=-MT
    • nmake -f Makefile.msvc NO_NLS=1 MFLAGS=-MT install
    • nmake -f Makefile.msvc NO_NLS=1 MFLAGS=-MT distclean
  4. 切換目錄至 D:\Work\test\gettext,執行:
    • nmake -f Makefile.msvc MFLAGS=-MT
    • nmake -f Makefile.msvc MFLAGS=-MT install
  5. 切換目錄至 D:\Work\test\iconv,執行:
    • nmake -f Makefile.msvc MFLAGS=-MT
    • nmake -f Makefile.msvc MFLAGS=-MT install
  6. 現在可以從 C:\usr 中找到編譯所需的檔案:
    • 複製 C:\usr\include 中的 iconv.h 和 libintl.h 至 D:\Work\win32build\include 中
    • 複製 C:\usr\lib 中的 iconv.lib 至 D:\Work\win32build\lib 中
    • 複製 C:\usr\lib 中的 intl.lib 至 D:\Work\win32build\lib 中,並更名為 libintl.lib
  7. 修改 PHP 源碼中的 ext\iconv\config.w32,將第7行:
    • if (/*CHECK_LIB("iconv.lib", "iconv", PHP_ICONV) &&*/
    • 改為
    • if (CHECK_LIB("iconv.lib", "iconv", PHP_ICONV) &&
  8. 修改 php_conf.bat 加上參數 --with-iconv 和 --with-gettext
  9. 重新編譯 PHP,執行:php_make.bat
  10. 編譯完成後安裝請執行:php_make.bat install
  11. iconv 可以動態連結也可以靜態連結,可以單獨載入(可使用 --without-gettext)
  12. gettext 只能靜態連結,且必須與 iconv 一同載入(不可使用 --without-iconv)
  13. 建議將兩者都使用靜態連結
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 HACGIS 的頭像
    HACGIS

    失落的技術

    HACGIS 發表在 痞客邦 留言(0) 人氣()