色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php make 報(bào)錯(cuò)

在編寫PHP程序時(shí),經(jīng)常會(huì)用到make來編譯及安裝擴(kuò)展,但有時(shí)候我們會(huì)遇到一些make報(bào)錯(cuò)的問題,今天我來分享一下關(guān)于這方面的經(jīng)驗(yàn)和解決方法。 一、常見的make報(bào)錯(cuò) 在使用make編譯時(shí),常見的報(bào)錯(cuò)有很多種,如: 1. configure: error: *** not found! 通常這種錯(cuò)誤是由于缺少必要的編譯工具、庫文件和環(huán)境變量設(shè)置導(dǎo)致的。 2. make: *** [module] Error 1 這種錯(cuò)誤通常是由于代碼中的語法錯(cuò)誤、邏輯錯(cuò)誤、代碼有依賴問題等引起的。 3. undefined reference to `function_name' 這種報(bào)錯(cuò)通常是由于鏈接庫的問題,需要判斷是否缺少必要的鏈接庫文件。 4. make: *** No rule to make target `target_name', needed by `prereqs'。這種錯(cuò)誤通常是由于Makefile文件中定義的目標(biāo)文件或源文件中某個(gè)文件名拼寫有誤或不存在,在編譯時(shí)make找不到相關(guān)文件。 二、如何解決常見的make報(bào)錯(cuò) 下面我將以實(shí)際案例為例,來說明如何解決常見的make報(bào)錯(cuò)。 1. configure: error: *** not found! 在編譯某些擴(kuò)展時(shí),通常會(huì)提示缺少某些必要的編譯工具、庫文件或環(huán)境變量設(shè)置不正確。 例如,在安裝memcached擴(kuò)展時(shí),我的make報(bào)錯(cuò)信息為: configure: error: no memcached support! 使用以下命令來查看make的詳細(xì)信息: ./configure --with-php-config=/usr/local/php/bin/php-config 此處在make時(shí)報(bào)錯(cuò),是因?yàn)槿鄙俦匾膌ibmemcached-devel庫文件,執(zhí)行以下命令來安裝: yum install libmemcached-devel 然后重新編譯即可。 2. make: *** [module] Error 1 當(dāng)我們用make編譯時(shí),遇到“make: *** [module] Error 1”錯(cuò)誤時(shí),通常是由于代碼中的語法錯(cuò)誤、邏輯錯(cuò)誤、代碼有依賴問題等引起的。 例如在安裝mongodb擴(kuò)展時(shí),make報(bào)錯(cuò)信息為: /home/test/mongodb-1.4.0/php_mongo.c:40: fatal error: php.h: 沒有那個(gè)文件或目錄 這種錯(cuò)誤通常是由于代碼中缺少了必要的頭文件,這時(shí)我們只需復(fù)制“php.h”頭文件到當(dāng)前目錄,或者把它所在的目錄加入到include搜索路徑中即可。 3. undefined reference to `function_name' 當(dāng)在make時(shí)遇到“undefined reference to `function_name'”錯(cuò)誤時(shí),通常是由于鏈接庫的問題,需要判斷是否缺少必要的鏈接庫文件。 例如在安裝pdo_mysql擴(kuò)展時(shí),make報(bào)錯(cuò)信息為: /usr/bin/ld: skipping incompatible /usr/lib/libmysqlclient.so when searching for -lmysqlclient /usr/bin/ld: cannot find -lmysqlclient 這種錯(cuò)誤通常是由于鏈接庫的版本不一致導(dǎo)致的,我們可以使用以下命令來進(jìn)行鏈接庫的排查: find / -name libmysqlclient.so 在進(jìn)行了排查后,我們可以使用以下命令將錯(cuò)誤的鏈接庫文件排除: mv /usr/lib/libmysqlclient.so /usr/lib/libmysqlclient.so.bak 然后我們?cè)俅螆?zhí)行安裝步驟即可。 4. make: *** No rule to make target `target_name', needed by `prereqs' 當(dāng)在make時(shí)遇到“make: *** No rule to make target `target_name', needed by `prereqs'”錯(cuò)誤時(shí),通常是由于Makefile文件中定義的目標(biāo)文件不存在或拼寫錯(cuò)誤引起的。 例如在安裝redis擴(kuò)展時(shí),make報(bào)錯(cuò)信息為: make: *** No rule to make target `php_redis.c', needed by `redis.lo'. Stop. 這種錯(cuò)誤通常是由于Makefile文件中有錯(cuò)別字或指定的目錄不存在,我們可以先使用以下命令查看當(dāng)前目錄: ls -l /home/test/phpredis/ 然后查看是否有php_redis.c這個(gè)文件,如果沒有,我們可以將文件放入該目錄或者修改Makefile中對(duì)應(yīng)文件名的拼寫錯(cuò)誤。 總結(jié) 在使用make編譯時(shí),我們需要注意各種錯(cuò)誤類型的特征,要根據(jù)不同的錯(cuò)誤類型采用針對(duì)性的解決方法,同時(shí)還需要對(duì)系統(tǒng)環(huán)境及依賴庫文件進(jìn)行排查,才能有效應(yīng)對(duì)和解決make報(bào)錯(cuò)問題。