Şu anda bazı Linux test sunucularına PHP 5.3.0 yüklemeye çalışıyorum. Ac/intl için acilen beklediğimizden, sağladığımız özellikleri kontrol etmek istiyoruz. BenIntl desteği ile PHP 5.3.0 yüklenirken sorun oluştu
./configure
--with-apxs2=/usr/local/apache2/bin/apxs
--prefix=/usr/local/php
--with-zlib-dir=/usr/local/zlib
--with-imap=/.../imap-2006k
--with-imap-ssl
--with-openssl=shared
--with-iconv=shared
--with-zlib=shared
--with-curl=shared
--with-curlwrappers
--enable-exif
--with-ldap=shared,/usr/local/openldap
--with-ldap-sasl
--enable-mbstring=shared
--with-mcrypt
--enable-soap=shared
--enable-sockets
--enable-zip=shared
--enable-pdo=shared
--with-pdo-sqlite=shared
--with-sqlite=shared
--with-mysql=shared,/usr/local/mysql
--with-pdo-mysql=shared,/usr/local/mysql
--with-mysqli=shared,/usr/local/mysql/bin/mysql_config
--with-mhash=shared,/usr/local/mhash
--with-libxml-dir=/usr/local/libxml2
--with-xsl=shared,/usr/local/libxslt
--enable-xmlreader=shared
--enable-xmlwriter=shared
--with-gmp=shared
--with-icu-dir=/usr/local/icu
--enable-intl
yoğun bakımda 4.2 /usr/local/icu
bulunan ve PHP 5.2.9 kusursuz derlenmektedir aşağıdaki argümanlarla başarıyla configure
koşuyorum (int- ve icu-seçeneksiz). PHP 5.3.0 kaynağını complie Ama ne zaman bir tür
ext/intl/grapheme/.libs/grapheme_util.o(.text+0xbab):/.../php-5.3.0/ext/intl/grapheme/grapheme_util.c:208: undefined reference to `ubrk_close_4_2'
Ben paylaşılan kütüphaneler görmediklerine ile bir ilgisi vardır eminim hata mesajlarının bir sürü olsun.
ayarı yardımcı olmuyor.
Birisi bana bir çözüm önerebilir mi? Daha doğrusu clueless - ve ben ... Bunlarla hiçbir gerçek uzman değilim
DÜZENLEME:
Sadece tekrar kontrol ve çeşitli icu-kütüphaneler ve ilgili yumuşak bağlantıların tümü olduğundan emin oldum /usr/local/icu/lib
bulunan: testlerinin
lrwxrwxrwx 1 root root 20 Jul 1 09:56 libicudata.so -> libicudata.so.42.0.1
lrwxrwxrwx 1 root root 20 Jul 1 09:56 libicudata.so.42 -> libicudata.so.42.0.1
-rw-r--r-- 1 root root 16015140 Jul 1 09:56 libicudata.so.42.0.1
lrwxrwxrwx 1 root root 20 Jul 1 09:56 libicui18n.so -> libicui18n.so.42.0.1
lrwxrwxrwx 1 root root 20 Jul 1 09:56 libicui18n.so.42 -> libicui18n.so.42.0.1
-rwxr-xr-x 1 root root 2454770 Jul 1 09:56 libicui18n.so.42.0.1
lrwxrwxrwx 1 root root 18 Jul 1 09:56 libicuio.so -> libicuio.so.42.0.1
lrwxrwxrwx 1 root root 18 Jul 1 09:56 libicuio.so.42 -> libicuio.so.42.0.1
-rwxr-xr-x 1 root root 65299 Jul 1 09:56 libicuio.so.42.0.1
lrwxrwxrwx 1 root root 18 Jul 1 09:56 libicule.so -> libicule.so.42.0.1
lrwxrwxrwx 1 root root 18 Jul 1 09:56 libicule.so.42 -> libicule.so.42.0.1
-rwxr-xr-x 1 root root 356125 Jul 1 09:56 libicule.so.42.0.1
lrwxrwxrwx 1 root root 18 Jul 1 09:56 libiculx.so -> libiculx.so.42.0.1
lrwxrwxrwx 1 root root 18 Jul 1 09:56 libiculx.so.42 -> libiculx.so.42.0.1
-rwxr-xr-x 1 root root 75110 Jul 1 09:56 libiculx.so.42.0.1
lrwxrwxrwx 1 root root 18 Jul 1 09:56 libicutu.so -> libicutu.so.42.0.1
lrwxrwxrwx 1 root root 18 Jul 1 09:56 libicutu.so.42 -> libicutu.so.42.0.1
-rwxr-xr-x 1 root root 159330 Jul 1 09:56 libicutu.so.42.0.1
lrwxrwxrwx 1 root root 18 Jul 1 09:56 libicuuc.so -> libicuuc.so.42.0.1
lrwxrwxrwx 1 root root 18 Jul 1 09:56 libicuuc.so.42 -> libicuuc.so.42.0.1
-rwxr-xr-x 1 root root 1660769 Jul 1 09:56 libicuuc.so.42.0.1
make check
çalışır ton - başarıyla hepsi:
[All tests passed successfully...]
Elapsed Time: 00:00:25.000
make[2]: Leaving directory `/.../icu-4.2/source/test/cintltst'
---------------
ALL TESTS SUMMARY:
All tests OK: testdata intltest iotest cintltst
make[1]: Leaving directory `/.../icu-4.2/source/test'
make[1]: Entering directory `/.../icu-4.2/source'
verifying that icu-config --selfcheck can operate
verifying that make -f Makefile.inc selfcheck can operate
PASS: config selfcheck OK
make[1]: Leaving directory `/.../icu-4.2/source'
DÜZENLEME: cevapları VolkerK ı kaynağından yoğun bakımda 4.2 yüklü ve ben inşa sürecine yukarıda yazdığı gibi, birim testleri ve kurulum tüm iyi gitti questions
. VolkerK en yorumu ile ilgili
/usr/local/icu/bin/icu-config --version
4.2.0.1
/usr/local/icu/bin/icu-config --prefix
/usr/local/icu
/usr/local/icu/bin/icu-config --cppflags-searchpath
-I/usr/local/icu/include
/usr/local/icu/bin/icu-config --ldflags --ldflags-icuio
-lpthread -lm -L/usr/local/icu/lib -licui18n -licuuc -licudata -lpthread -lm -licuio
objdump -C /usr/local/icu/lib/libicuuc.so.42.0.1
// doesn't work because of unrecognized argument -C
DÜZENLEME:
Hayır, katılan derleyici hiçbir anahtar olmuştur - ben hem doğrudan birbiri ardına süreçlerini inşa koştu. objdump /usr/local/icu/lib/libicuuc.so.42.0.1
çalışmıyor ya ama bu bilgi yardımcı olabilir bilmiyorum
objdump -t /usr/local/icu/lib/libicuuc.so.42.0.1 | grep ubrk_close
00000000000d2484 g F .text 000000000000002d ubrk_close_4_2
çalıştırmak başardı. VolkerK en
edit1 and edit2 üzerinde
DÜZENLEME:
Ben ovmak olduğunu düşünüyorum - sytem başka icu sürümü gerçekten vardır; en azından parçalar halinde (örneğin, başka bir icu-config yoktur; sadece /usr/local/icu/bin
numaralı telefon).
gcc -lpthread -lm -L/usr/local/icu/lib -licui18n -licuuc -licudata -lpthread -lm -licuio -print-file-name=libicuuc.so
döner
/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../lib64/libicuuc.so
gcc -lpthread -lm -L/usr/local/icu/lib -licui18n -licuuc -licudata -lpthread -lm -licuio -print-file-name=libicuuc.so.42
döner
libicuuc.so.42
Yani sorun, nasıl inşa sürecine yeni lib-yolunu almak için görünüyor süre
?? Bu arada, cevaplarınızdan çok şey öğrendim - hepinize teşekkür ederim.Ayrıca, basit test programınızı derledim - ve muhtemelen aynı nedenleri olmamakla, aynı sonucu aynı tanımsız başvuru hatayla da başarısız oluyor.
Lib-path'daki eski icu kitaplığına yapılan başvurudan nasıl kurtulabilirim veya yeni icu-kitaplık yoluna nasıl öncelik verebilirim?
ldconfig/usr/local/icu/lib' işlevini çalıştırıyor mu? –
icu-config çıktısı doğru görünüyor. Yazık objdump -C çalışmıyor. Afaik libicuuc.so ubrk_close'u dışa aktarmalı ... Belki parametreler olmadan deneyebilirsiniz? Sadece "objdump /usr/local/icu/lib/libicuuc.so.42.0.1 ", bu paylaşılan nesne tarafından hangi sembollerin/fonksiyonların dışa aktarıldığını göstermelidir.Örnekle yapalım: Sadece ubrk_close/ubrk_close_4_2 için kopyalayıp yapıştırın.wtw: Derleyicileri (veya gcc'nin ana sürümü) değiştirmediniz. ICU ve PHP oluşturma – VolkerK
VolkerK'ın yorumunu yaptıktan sonra soruyu düzenleyin –