İnternetten açık kaynaklı yazılım indirirken (bu durumda: PHP 5.5.5), kaynaktan derlemek için genellikle bir Automake "script" (eğer bir script diyebilirsem) ile birlikte gelirler.
Şimdi farklı bir mimari için çapraz derlemeye çalışıyorum, ancak farklı bir ./configure --switch belirtdiğimde farklı bir hata alıyorum. Genelde, bu hata, geliştirici dışındaki kişilere kesinlikle hiçbir şey ifade etmeyen kısa, açıklayıcı olmayan bir iletidir.
"sürü yapısının linux sipariş edilip edilmediğini kontrol etmek" ... configure: error: `/ usr/src/hd/lib/php-5.5.5 'içinde: configure: error: çapraz derleme sırasında test programını çalıştıramıyor
Bunu takiben:
Daha fazla ayrıntı için bkz. `Config.log '
Bu yüzden şunu yazın:
cat ./config.log
Ama gerçekten, sıra dışı olanın bana gösterdiği tek şey şudur:
configure: çıkış 1
-
Peki ne verir? Sorunun ne olduğunu nasıl söyleyebilirim?
Bilginize, yapılandırma seçeneklerim şöyle görünüyor:
./configure --prefix="`pwd`/install/" \
--build="i386-pc-linux-gnu" \
--host="mips-linux-gnu" \
--target="mips-linux-gnu" \
--with-libxml-dir="/usr/src/hd/lib/libxml2-2.7.8/install/" \
--enable-soap \
CC="mips-linux-gnu-gcc" \
CFLAGS="-O2 -EL -march=74kf" \
CPP="mips-linux-gnu-cpp" \
CPPFLAGS="-I$CROSS_ROOTFS/include" \
CXX="mips-linux-gnu-g++" \
CXXFLAGS="-O2 -EL -march=74kf" \
CXXCPP="mips-linux-gnu-cpp" \
AR="mips-linux-gnu-ar" \
RANLIB="mips-linux-gnu-ranlib" \
AS="mips-linux-gnu-as" \
NM="mips-linux-gnu-nm" \
LD="mips-linux-gnu-ld" \
LDFLAGS="-L$CROSS_ROOTFS/lib" \
ADDR2LINE="mips-linux-gnu-addr2line"
Bilmeyeceğiniz gibi, kodlar için çapraz derleme yapmak için CodeSourcery araç zincirini kullanıyorum. Tüm değişkenleri (RANLIB gibi) belirtmem gerekmediğinin farkındayım, ancak nasıl zarar verebileceğini görmüyorum.
GÜNCELLEME
Sorun burada listelenen paket uzantılarının birinde (veya daha fazlasında) görünüyor: http://php.net/manual/tr/extensions.membership.php
--Disable-all works ile yapılandırma. Ama belli ki, gerçek bir iş yapmak için bu paket uzantıların en azından bir kısmına ihtiyacım var.
Yine de hangisine nasıl söyleyebilirim?
GÜNCELLEME
Sorunu, varsayılan olarak etkin olan OPcache adlı bir uzantıya indirgedim (bkz: http://us2.php.net/manual/en/opcache.installation.php ). Devre dışı bıraktıktan sonra, hedef sistemimde çalışmayacak diğer uzantılarıyla birlikte başarıyla derlendi.
Yine de, bu bana hiç belli değildi. Yaptığım şey, aptal şey sonunda işe yarayacak şekilde listelenen uzantıları tek tek devre dışı bırakarak çıktı günlüğünden geriye doğru çalışmaktı.
Kuşkusuz, bu gibi sorunları tespit etmenin daha iyi bir yolu olmalı? Aksi halde, bu otomatik saçma saçmalığın nesi var?