php WIN下編譯註意問題

來源:互聯網
上載者:User

標籤:http   io   使用   ar   for   檔案   sp   問題   log   

下載VC2012,安裝
開啟CMD 須運行 vcvars32.bat (初始化VC編譯環境)

下載PHP WIN編譯包:http://windows.php.net/downloads/php-sdk/
    下載:
        php-sdk-binary-tools-20110915.zip
    解壓,CMD進入該目錄,運行
    bin\phpsdk_setvars.bat
    bin\phpsdk_buildtree.bat php5dev
    會在目前的目錄下產生 php5dev 檔案夾
    根據你的VC版本,需要編譯版本,進入 php5dev/vc*/x**/
    會有 deps 檔案夾,根據PHP版本下載:
        deps-5.*-vc11-x86.7z
    解壓把壓縮包裡的deps內容放入當前檔案夾的deps目錄中
    根據PHP版本下載PHP源碼:http://php.net/downloads.php
    下載php-5.*.*.tar.gz 解壓到目前的目錄:php5dev/vc*/x**/
    進入php源碼目錄執行:
        #產生configure檔案
        buildconf
        #產生Makefile檔案
        configure --enable-**
        #根據需求添加指定擴充
        #如果需要把擴充編譯成DLL,編譯參數為:
        --enable-**=shared
        #執行編譯
        nmake
        編譯出來的檔案在 Release_TS

        只編譯指定擴充可以使用 configure --disable-all --enable-cli --enable-***=shared


一般出現php5ts.dll.def : error LNK2001: 無法解析的外部符號 ** 表示依賴的外部庫沒找到
使用外部庫:
    在執行了 configure 後會在源碼目錄產生 Makefile 檔案,修改該檔案
    1. 添加庫目錄:
    LDFLAGS=/nologo /libpath:"E:\php\phpsdk\php55dev\vc9\x86\deps\lib" /libpath:"你的庫LIB目錄"  
    2. 添加標頭檔
    CFLAGS=/nologo /FD ...(略)  /I "你的include標頭檔目錄"  /D FD_SETSIZE=256
    3. 指定庫
    LIBS=kernel32.lib ...(略) 你的庫.lib

編譯你的擴充
    在PHP源碼目錄 ext 添加擴充
    在WIN下編譯擴充的設定檔為:config.w32 必須要有該檔案 非 config.m4
    config.w32 檔案註解
    #表示編譯參數,同時會有 PHP_TEST 變數 如果第三個參數為 yes 表示預設編譯
    ARG_ENABLE("test", "for php_test support", "no");
    #一般會有這個判斷 表示要編譯才添加編譯擴充
    if (PHP_TEST == "yes") {
        #參數1 編譯名
        #參數2 所有的C檔案
        #參數3 null 表示共用編譯 true 表示編譯進PHP
        EXTENSION("screw", "**.c **.h /*你的C檔案*/", null);
    }

php WIN下編譯註意問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.