Automake ne düştü?


3

İ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?


İyi iş çıkardın. Uzantıları birer birer etkinleştirmek yerine, ikili bir arama deneyin .
Craig McQueen,

Belki de otomatik konfigürasyonun açık kaynak dünyasına nerede uyduğunu anlayabilecek kadar deneyimli değilim, ama bana göre bu, akla gelebilecek en aptal fikirlerden biri gibi görünüyor. Sonra tekrar, PHP adamları çapraz derlemeyi desteklemediklerini / desteklemeyeceklerini belirtiyorlar. Bu sorunlar sürpriz olmadı.
Steven Liekens

Yanıtlar:


1

opscacheGerektirir libtdlbir parçası olan, GNU libtool'un .

Linux

Linux'ta libltdl-devpaketi alın, örneğin Ubuntu'da:

$ sudo apt-get install libltdl-dev

Mac OS X

OSX için, GNU Libtool'u kurmanın en kolay yolu, Homebrew üzerinden yüklemektir.

$ brew install libtool

Özellikle, GNU Libtool, PHP derlemesi için kullanılan aşağıdaki dosyaları sağlayacaktır.

/usr/local/lib/libltdl.dylib
/usr/local/lib/libltdl.a
/usr/local/lib/libltdl.7.dylib

Bir yandan not olarak, OSX libtdl arayüzünü içermeyen kendi libtool kopyası ile birlikte gelir. Çakışmaları önlemek için GNU libtool araçları 'g', ör kodu bulunmaktadır glibtoolveglibtoolize

Libtdl

Daha fazla bilgi için lütfen http://www.gnu.org/software/libtool/manual/html_node/Libltdl-interface.html adresine bakın.


Teşekkürler. Şu anda hala OPcache olmadan PHP kullanıyorum, ancak bunu inceleyeceğim. Sormam gerekiyor, bu tür bilgileri nereden buluyorsunuz? Hiç bir yerde başvuruda bulunduğum libdtl'i hatırlamıyorum.
Steven Liekens

@StevenLiekens şanslıydım - hata mesajı arıyordu, özellikle struct flockbugs.php.net/bug.php?id=65423 adresindeki vasilis'in çözümü üzerine düştü . Ben PHP devs opcache etkin olduğunda depto olarak libtool ekleyeceğini ya da daha kullanışlı autoconf/ makehata mesajı vereceğini umuyorum . Ben de github.com/Homebrew/homebrew-php PHP> 5.5 için benzer bir yama gönderdim ve kabul
edileceğini
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.