PHP報錯:?configure: error: Cannot find libmysqlclient

spectre2發表於2015-06-09
./configure    --prefix=/home/work/webserver/php  \
--with-config-file-path=/home/work/webserver/php/etc  --with-bz2  --with-curl  \
--enable-ftp  --enable-sockets  --disable-ipv6 \
--with-xsl \
--with-gd \
--with-jpeg-dir=/home/work/webserver/jpeg9/ \
--with-png-dir=/usr/local  \
--with-freetype-dir=/usr/local  --enable-gd-native-ttf  \
--with-iconv-dir=/usr/local  --enable-mbstring=all \
--enable-calendar  \
--with-gettext  --with-libxml-dir=/usr/local  --with-zlib  \
--with-mysql=/home/mysql/mysql \
--with-pdo-mysql=/home/mysql/mysql \
--with-mysqli=/home/mysql/mysql/bin/mysql_config \
--with-xpm-dir=/usr/lib64 \
--enable-soap \
--enable-dom  --enable-xml  --enable-fpm  --with-libdir=lib64  --enable-bcmath 


開始報找不到jepg的lib
後來又報gd的lib版本錯誤configure: error: Unable to find libgd.(a|so) >= 2.1.0 anywhere under /home/
更改了lib路徑(64位系統,把/usr/lib連結到/usr/lib64)
又報mysql的錯誤
Note that the MySQL client library is not bundled anymore!
configure: error: Cannot find libmysqlclient under /home/mysql/mysql.

仔細看了configure的報錯資訊,發現好像--with指定路徑的都有點問題,像是路徑沒生效,思考了一下configure找尋lib的順序,引數沒問題啊~

再看了一遍引數,突然發現: --with-libdir=lib64  
這個引數就是罪魁禍首!!它會讓configure去路徑下的lib64裡找lib而一遍我們二進位制原始碼編譯安裝的軟體,lib都是在路徑下的lib目錄的,而64位系統裡,通過rpm、yum安裝的軟體包,會把lib安裝到/usr/lib64下,這就是為什麼--with指定路徑的都有點問題,因為指定路徑的都是二進位制原始碼編譯安裝的軟體。。。
這個引數耽誤了我一下午的時間,都怪自己不去思考!
解決方法:
編譯時去掉--with-libdir=lib64 ,如果需要系統包,就把二進位制原始碼編譯安裝的軟體立的lib連結一個lib64吧。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14184018/viewspace-1692424/,如需轉載,請註明出處,否則將追究法律責任。

相關文章