Ubuntu 14.04 編譯 PHP 5.6.3 時發生錯誤

Ubuntu 14.04 編譯 PHP 5.6.3 時發生錯誤

我認為我安裝了 Apache2 和 PHP 的所有依賴項,一切都是正確的。

首先,我安裝了一個乾淨的 Ubuntu 14.04,其中包含所有實際更新。然後我用“apt-get build-dep php5 apache2”安裝了必要的依賴項。

之後我做了以下步驟:

對於最後一個依賴項:

apt-get install apache2 mysql-client mysql-server php5 libapache2-mod-php5 libxml2-dev libcurl4-openssl-dev libbz2-dev libjpeg-dev libpng-dev libfreetype6-dev libtidy-dev libxslt-dev libmcrypt-dev php5-gd php5-curl libc-client2007e-dev

ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a 

(編譯過程找到libc-client.a檔)

最後從php-5.6.3目錄開始編譯過程

./configure --with-config-file-path=/etc/php5/apache2 --with-pear=/usr/share/php --with-gd --with-mysql --with-mysqli --with-pdo-mysql=/usr --with-curl --disable-debug --with-mhash --with-jpeg-dir=/usr --with-freetype-dir=/usr --with-zlib --with-gettext --with-bz2 --with-mcrypt --with-iconv --enable-soap --with-openssl --enable-mbstring --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --enable-bcmath --with-imap --with-xsl --with-imap-ssl --enable-zip --with-tidy --with-kerberos --enable-calendar --enable-sockets --with-libxml-dir=/usr --with-apxs2

make install

然後我得到以下錯誤:

/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libc-client.a(osdep.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/lib/x86_64-linux-gnu/libc-client.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [libphp5.la] Fehler 1

我真的不知道如何解決這個問題,因為它真的不應該發生。一切都是乾淨安裝的,Google也沒有告訴任何可以幫助的事情...

如果這裡有人能幫助我那就太好了:D

答案1

錯誤訊息告訴您可以新增 -fPIC 編譯器標誌。

http://jaytaylor.com/blog/2010/10/06/howto-fix-fpic-errors/

在此頁面上,您可以找到半好的解決方案 - 為整個 PHP 啟用 PIC。

export CC=”gcc -fPIC”
export CXX=”g++ -fPIC”

但我不知道這個解決方案有什麼缺點。

相關內容