close
iconv 和 gettext 這兩個 Extensions 必須一起編譯,所以就一同介紹。
要注意的是,目前沒辦法拿最新的版本來編譯,我測試過可以成功的版本號碼如下:
要注意的是,目前沒辦法拿最新的版本來編譯,我測試過可以成功的版本號碼如下:
- iconv:libiconv-1.9.2.tar.gz
- gettext:gettext-0.14.6.tar.gz
- 源碼可從每個 GNU FTP Mirror 取得:FTP 列表。
- 下載後解開至 D:\Work\test\iconv、D:\Work\test\gettext
- 切換目錄至 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
- 切換目錄至 D:\Work\test\gettext,執行:
- nmake -f Makefile.msvc MFLAGS=-MT
- nmake -f Makefile.msvc MFLAGS=-MT install
- 切換目錄至 D:\Work\test\iconv,執行:
- nmake -f Makefile.msvc MFLAGS=-MT
- nmake -f Makefile.msvc MFLAGS=-MT install
- 現在可以從 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
- 修改 PHP 源碼中的 ext\iconv\config.w32,將第7行:
- if (/*CHECK_LIB("iconv.lib", "iconv", PHP_ICONV) &&*/
- 改為
- if (CHECK_LIB("iconv.lib", "iconv", PHP_ICONV) &&
- 修改 php_conf.bat 加上參數 --with-iconv 和 --with-gettext
- 重新編譯 PHP,執行:php_make.bat
- 編譯完成後安裝請執行:php_make.bat install
- iconv 可以動態連結也可以靜態連結,可以單獨載入(可使用 --without-gettext)
- gettext 只能靜態連結,且必須與 iconv 一同載入(不可使用 --without-iconv)
- 建議將兩者都使用靜態連結
全站熱搜
留言列表