“'Aclocal-1.15' sisteminizde eksik” uyarısının üstesinden nasıl gelinir?


85

Github'da bir c ++ programı çalıştırmaya çalışıyorum. (aşağıdaki bağlantıda https://github.com/mortehu/text-classifier )

Bir mac cihazım var ve onu terminalde çalıştırmaya çalışıyorum. Autoconf ve automake'ı indirdim ama emin değilim. Programı çalıştırmak için terminalde doğru klasöre gidip çalıştırıyorum

./configure && make 

Ama şu hatayı alıyorum:

UYARI: 'aclocal-1.15' sisteminizde eksik. Yalnızca 'acinclude.m4' veya 'configure.ac' ya da 'configure.ac' içinde bulunan m4 dosyalarını değiştirdiyseniz ihtiyacınız olacaktır. 'Aclocal' programı GNU Automake paketinin bir parçasıdır: http://www.gnu.org/software/automake Ayrıca çalışması için GNU Autoconf, GNU m4 ve Perl gerekir: http://www.gnu.org / software / autoconf http://www.gnu.org/software/m4/ http://www.perl.org/ make: *** [aclocal.m4] Hata 127

Xcode, g ++ ve c programlarını çalıştırmak için gereken her şeye sahibim, ancak muhtemelen açık olduğu gibi, ne yaptığım hakkında hiçbir fikrim yok.

Yukarıdaki bağlantıdaki programı çalıştırmanın en kolay ve en basit yolu nedir? Benioku ve örnek kullanımla geldiğinin farkındayım ama bunu çalıştıramıyorum.



1
"Her şey programlara c çalıştırmak için gerekli" - Eğer her şeyi ihtiyaç derlemek bu durumda paketleri içerir programı, automake, autoconf, m4, ve perlmesaj oldukça açık bir şekilde ifade ettiği gibi, ... "Bence ben indirdiğiniz autoconf ve "automake ama emin değilim - oldukça emin değil ediyorum yüklü en azından düzgün. ;-)
DevSolar

Yanıtlar:


168

Koşmadan önce koşmayı ./configuredeneyin autoreconf -f -i. Autoreconf programı, gerektiği gibi autoheader, aclocal, automake, autopoint ve libtoolize'ı otomatik olarak çalıştırır.

Eklemek için düzenle: Bu genellikle kodu bir .zipveya .tar.gzarşivden çıkarmak yerine Git'ten teslim almaktan kaynaklanır . Dosyalar değiştiğinde yeniden oluşturmaları tetiklemek için Git dosyaların zaman damgalarını korumaz, bu nedenle configurekomut dosyası güncel görünmeyebilir. Diğerlerinin de bahsettiği gibi, yeterince yeni bir sürümüne sahip değilseniz, bunu aşmanın yolları vardır autoreconf.

Başka bir düzenleme: Bu hata, arşivden çıkarılan kaynak klasörün scp ile başka bir makineye kopyalanmasından da kaynaklanabilir. Zaman damgaları güncellenebilir ve yeniden oluşturmanın gerekli olduğunu gösterir. Bundan kaçınmak için arşivi kopyalayın ve yerinde çıkarın.


Teşekkürler Mortehu! Ama sonra şu hatayı alıyorum: base / columnfile.cc'den eklenen dosyada: 1: ./base/columnfile.h:8:10: ölümcül hata: 'kj / debug.h' dosyası bulunamadı #include <kj / debug .h> Bir dosya eksik mi?
Liam Flynn

1
Evet, Cap'n Proto projesinin bir parçası olan libkj'yi kaçırıyorsunuz. Ayrıca libsnappy'ye ihtiyacınız olacak.
mortehu

Tamam, nihayet yapılandırmak, kurmak ve kurmak için gerekli tüm araçlara sahibim. Görünüşe göre hepsi çalışıyor, ama yürütülebilir dosya nereye gidiyor? Bunun önemli mi yoksa alakalı mı olduğundan emin değilim, ancak yükleme yaptığımda şu mesajı alıyorum (çok daha büyük bir mesajın parçası olarak): # Hedef değil: yükle: # Komut satırı hedefi. # Örtük kural araması yapılmadı. # Değişiklik süresi asla kontrol edilmedi. # Dosya güncellenmedi. Bu çıktı dosyası oluşturulmadığı anlamına mı geliyor?
Liam Flynn

Program olarak bitmelidir tools/text-classifier/text-classifier. Neden make installişe yaramadığını bilmiyorum .
mortehu

projenizde ./configure komutunu çalıştırıp ardından automakepaketi güncellerseniz bu gerçekleşebilir
Alec Istomin

52

Genellikle, herhangi bir auto*araca ihtiyacınız yoktur ve en basit çözüm, yalnızca touch aclocal.m4 configureilgili klasörde çalıştırmaktır (ve ayrıca ve varsa touchüzerinde çalıştırmaktır ). Bu, zaman damgasını güncelleyecek ve güncel olan ve yeniden oluşturulması gerekmeyen sistemi hatırlatacaktır . Bundan sonra, muhtemelen en iyisi dizininizi boşaltmak ve bunu yaptıktan sonra sıfırdan yeniden çalıştırmaktır . Bu problemle düzenli olarak karşılaşıyorum. Benim için temel neden, başka bir klasörden bir kitaplığı (örneğin kodu ) kopyalamam ve zaman damgalarının değişmesidir.Makefile.amMakefile.inaclocal.m4aclocal.m4buildconfigurempfrgcc

Elbette, bu dosyaları gerçekten yeniden oluşturmanız gerekiyorsa, belki de manuel olarak değiştirdiğiniz için bu numara geçerli değildir. Ancak umarız paketin geliştiricileri güncel dosyaları dağıtır.


Ve elbette, yüklemek automakeve arkadaş edinmek istiyorsanız , dağıtımınız için uygun paket yöneticisini kullanın.


Automake ile birlikte gelen bir yerel kurun:

brew install automake          # for Mac
apt-get install automake       # for Ubuntu

Tekrar deneyin:

./configure && make 

Bunu yaptıktan sonra şunu alıyorum: configure.ac:25: hata: Autoconf sürüm 2.69 veya üstü gerekli ... UYARI: 'aclocal-1.15' muhtemelen çok eski. ... make: *** [aclocal.m4] Hata 63
Liam Flynn

ve sonra autoconf v2.69'u yükledikten sonra şunu alıyorum: libtool: Sürüm uyuşmazlığı hatası. Bu libtool 2.4.2 Debian-2.4.2-1.11'dir, ancak libtool: bu LT_INIT'in tanımı libtool 2.4.4'ten gelir. libtool: libtool 2.4.2 Debian-2.4.2-1.11 libtool'daki makrolarla aclocal.m4'ü yeniden oluşturmalı ve autoconf'u yeniden çalıştırmalısınız.
Liam Flynn

Tamamladığınızdan emin olun brew install libtool, ardından koşun aclocal, sonra koşun autoconf.
emlai

Libtool'u güncelledim ama şimdi alıyorum: libtool: Sürüm uyuşmazlığı hatası. Bu libtool 2.4.2 Debian-2.4.2-1.11'dir, ancak libtool: bu LT_INIT'in tanımı libtool 2.4.6'dan gelir. libtool: libtool 2.4.2 Debian-2.4.2-1.11 libtool'daki makrolarla aclocal.m4'ü yeniden oluşturmalı ve autoconf'u yeniden çalıştırmalısınız.
Liam Flynn

Bu sorunu çözer. Ancak başka birçok şey gerektirdiğinden (kök ayrıcalığı, ağ bağlantısı, yeni yazılım için daha fazla alan vb.) Gerekli değildir. Aşağıdaki Droopycon'un çözümü (yakın) doğru bir cevaptır, çünkü Hata mesajı "Sadece 'acinclude.m4' veya 'configure.ac' veya 'configure.ac' içinde bulunan m4 dosyalarını değiştirdiyseniz ihtiyacınız olmalıdır." .
harihardik

11

İhtiyaç duyduğunuz sürümü kolayca kurabilirsiniz:

Önce kaynağı alın:

$ wget https://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz

Paketi açın:

$ tar -xzvf automake-1.15.tar.gz

Derleyin ve kurun:

$ cd automake-1.15
$ ./configure  --prefix=/opt/aclocal-1.15
$ make
$ sudo mkdir -p /opt
$ sudo make install

Kullanın:

$ export PATH=/opt/aclocal-1.15/bin:$PATH
$ aclocal --version

yerel (GNU automake) 1.15

Şimdi yerel olarak çağrıldığında, doğru sürümü alırsınız.


Bu benim için "yerel" kurdu. CygWin'in UI Yükleyicisi aracılığıyla "automake" araması yaparak ve 11-1 sürümünü seçerek yükledim.
justdan23

8

Bu özel durum için geçerli olabilecek veya olmayacak genel bir cevap:

Hata mesajının da işaret ettiği gibi, aclocal-1.15 yalnızca aclocal.m4'ü oluşturmak için kullanılan dosyaları değiştirdiyseniz gerekli olmalıdır.

Bu dosyalardan herhangi birini (configure.ac dahil) değiştirmezseniz, aclocal-1.15'e sahip olmanıza gerek yoktur.

Benim durumumda sorun, bu dosyalardan herhangi birinin değiştirilmiş olması değil, bir şekilde configure.ac üzerindeki zaman damgasının aclocal.m4 ile karşılaştırıldığında 6 dakika sonraydı.

Nedenini bulamadım, ama git depomun temiz bir kopyası sorunu benim için çözdü. Belki git ile bağlantılı bir şey ve ilk etapta nasıl dosya yarattığı.

Autoconf ve arkadaşları yeniden çalıştırmaktansa, temiz bir klon alıp tekrar denemeye çalışırdım .

Ayrıca birisinin configure.ac için bir değişiklik yapmış, ancak aclocal.m4'ü yeniden oluşturmamış olması da mümkündür, bu durumda gerçekten automake ve arkadaşları yeniden çalıştırmanız gerekir.


1
Daha uygun cevap. Benzer hatayı aldım çünkü kaynak dosyalarını squid tarafından sağlanan tar'dan çıkartmadım. Bunun yerine, zaten çıkarılan klasörü kopyaladım ve dosya kopyalama sıram farklıydı, bu da hataya neden oldu. Doğrudan katrandan tekrar çıkardım ve çalışmaya başladı. Bir şans verildiğinde, Droopycon'un çözümünü uygun bir cevap olarak işaretlerdim.
harihardik

Parlak! rsyncÖnceden ayıklanmış dosyaları bir sunucudan diğerine (sıkıştırılmış kaynak arşivlerini kopyalamak yerine) zaman damgalarını korumadan kopyalamak için kullanmıştım . Bunun yerine kaynak arşivleri kopyaladığımda ve bunları hedef makinede çıkardığımda sorun oluşmadı. Teşekkür ederim!
Ben Johnson

Aslında, çoğu zaman cevap "Depoyu yeni kontrol et" dir. Harika cevap ve ödül!
Fattie

6

Autotools'un tüm amacı, nihayetinde adı verilen bir kabuk betiğine derlenen gizli bir M4-makro tabanlı dil sağlamaktır ./configure. Bu derlenmiş kabuk komut dosyasını kaynak koduyla birlikte gönderebilirsiniz ve bu komut dosyası ortamı algılamak ve programı oluşturmak için hazırlamak için her şeyi yapmalıdır. Otomatik araçlar yalnızca testleri değiştirmek ve bu kabuk betiğini yenilemek isteyen biri tarafından istenmelidir.

GNU This ve GNU That, çalışması için sisteme yüklenmesi gerekiyorsa, Autotools noktasını yener. Başlangıçta, programların çeşitli Unix sistemlerine taşınmasını basitleştirmek için icat edildi, bu sistemlerde herhangi bir şey olduğu düşünülmüyordu. Oluşturulan kabuk kodu tarafından kullanılan yapılar bile, ./configurehemen hemen her yerde kırık eski kabuklar üzerinde çalışacaklarından emin olmak için çok dikkatli seçilmeliydi.

Karşılaştığınız sorun, Autotools'un ne işe yaradığını ve son ./configurebetiğin rolünü anlamayan insanlar tarafından icat edilen bazı bozuk Makefile adımlarından kaynaklanıyor .

Geçici bir çözüm olarak, Makefile'a gidebilir ve bunu ortadan kaldırmak için bazı değişiklikler yapabilirsiniz. Örnek olarak, GNU Awk'in Git kafasını oluşturuyorum ve aynı problemle karşılaşıyorum. Makefile.inAncak bu yamayı şuraya uyguladım ve başarılı bir şekilde make gawk:

diff --git a / Makefile.in b / Makefile.in

index 5585046..b8b8588 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -312,12 +312,12 @@ distcleancheck_listfiles = find . -type f -print

 # Directory for gawk's data files. Automake supplies datadir.
 pkgdatadir = $(datadir)/awk
-ACLOCAL = @ACLOCAL@
+ACLOCAL = true
 AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
+AUTOCONF = true
+AUTOHEADER = true
+AUTOMAKE = true
 AWK = @AWK@
 CC = @CC@
 CCDEPMODE = @CCDEPMODE@

Temel olarak, zararsız truekabuk komutunun tüm Otomatik doldurma programlarının yerine geçmesi için bazı şeyleri değiştirdim .

Gawk için gerçek derleme adımları Otomatik doldurmaya ihtiyaç duymaz! Yalnızca Otomatik Öğelerin bazı kısımları değiştiğinde ve yeniden işlenmesi gerektiğinde çağrılan bazı kurallarda yer alır. Ancak Makefile, araçlar mevcut değilse başarısız olacak şekilde yapılandırılmıştır.

Yukarıdaki yamadan önce:

$ ./configure
[...]
$ make gawk
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/kaz/gawk/missing aclocal-1.15 -I m4
/home/kaz/gawk/missing: line 81: aclocal-1.15: command not found
WARNING: 'aclocal-1.15' is missing on your system.
         You should only need it if you modified 'acinclude.m4' or
         'configure.ac' or m4 files included by 'configure.ac'.
         The 'aclocal' program is part of the GNU Automake package:
         <http://www.gnu.org/software/automake>
         It also requires GNU Autoconf, GNU m4 and Perl in order to run:
         <http://www.gnu.org/software/autoconf>
         <http://www.gnu.org/software/m4/>
         <http://www.perl.org/>
make: *** [aclocal.m4] Error 127

Yamadan sonra:

$ ./configure
[...]
$ make gawk
CDPATH="${ZSH_VERSION+.}:" && cd . && true -I m4
CDPATH="${ZSH_VERSION+.}:" && cd . && true
gcc -std=gnu99 -DDEFPATH='".:/usr/local/share/awk"' -DDEFLIBPATH="\"/usr/local/lib/gawk\"" -DSHLIBEXT="\"so"\" -DHAVE_CONFIG_H -DGAWK -DLOCALEDIR='"/usr/local/share/locale"' -I.     -g -O2 -DNDEBUG -MT array.o -MD -MP -MF .deps/array.Tpo -c -o array.o array.c 
[...]
gcc -std=gnu99  -g -O2 -DNDEBUG  -Wl,-export-dynamic -o gawk array.o awkgram.o builtin.o cint_array.o command.o debug.o dfa.o eval.o ext.o field.o floatcomp.o gawkapi.o gawkmisc.o getopt.o getopt1.o int_array.o io.o main.o mpfr.o msg.o node.o profile.o random.o re.o regex.o replace.o str_array.o symbol.o version.o      -ldl -lm
$ ./gawk --version
GNU Awk 4.1.60, API: 1.2
Copyright (C) 1989, 1991-2015 Free Software Foundation.
[...]

Oraya gidiyoruz. Gördüğünüz gibi, CDPATH=komut satırları Otomatik şeyler'in çağrıldığı, truekomutları gördüğünüz yerdedir . Bunlar, başarılı bir sonlandırma bildirir ve bu nedenle, mükemmel bir şekilde yapılandırılmış, yamulmuş yapıyı yapmak için bu gereksiz yere düşer.

Yaptım make gawkçünkü başarısız olan bazı alt dizinler var; hile, ilgili Makefiles için tekrarlanmalıdır.

Bu tür bir şeyle geliştiricilerinden programın bozulmamış, resmi bir tarball'uyla karşılaşıyorsanız, şikayet edin. Sadece açmak gerekir, ./configureve makeherhangi Automake veya Autoconf malzemeleri şey yama veya yüklemek zorunda kalmadan.

İdeal olarak Git kafalarının çekilmesi de bu şekilde davranmalıdır.


Makefile dosyalarının bozuk olduğunu neden düşünüyorsunuz? Emlai'nin cevabında belirtildiği gibi, yapı sistemi, oluşturulan dosyalar için bağımlılıkların güncelliğini yitirdiğini kabul eder (bu, yalnızca bunları girerek düzeltebileceğiniz berbat zaman damgaları söz konusu olabilir touch). - bu sistemi oluşturdu insanlar (tüm bağımlılıkları ile doğru inşa sağlamak için yaratıldı anlamak olmadığını söyleyen içerirauto* ve etkin tamamen herhangi bunu yapmayın için Makefiles değişen onlar değiştirilirse -Parçalar) daha fazla görünüyor ... yanlış.
Simon Sobisch

@SimonSobisch Bu sorunu yaşıyor musunuz ve yanıtı kullanamıyor musunuz?
Kaz

Sorduğun için teşekkürler. Hayır, bu sorunla karşılaşmıyorum, ancak gönderinizi okuduktan sonra "bu hata, Makefile'ların bozuk olması ve olması gerekenin olmaması nedeniyle oluşuyor" - Makefile'lar tam olarak yapması gerekeni yaparken (gereken dosyaları aynı kurallara göre yeniden oluşturulacak bir nesne dosyası bir C kaynağından yeniden oluşturulacaktır). Çoğu durumda hata, insanların dist-olmayan paketleri gerekli araçlar olmadan kullanmaları veya kaynaklardan gelen zaman damgalarının "yazara şikayet etmeleri" nedeniyle oluşur.
Simon Sobisch

Ben istiyorum asla bir araç değiştirmek için tavsiye true. "Zaman damgaları" make --touchbaşarısız olan hedeflere karşı daha iyi koştuğu için kırılan parçaları gerçekten onarmak istiyorsanız (onları toplamak istiyorsanız, make --keep-goingönceden "kırık" parçaların bir listesini almak için çalıştırın ).
Simon Sobisch

@SimonSobisch Harika öneriler; Orada ayrı bir cevabın başlangıcı varmış gibi geliyor. Bu durumda, araçların olarak değiştirilmesi, truebu araçların programı oluşturmak için gereksiz olması, ancak yalnızca configureönceden oluşturulmuş formda bulunan betiği yeniden oluşturmak için mantıklı bir şekilde haklı çıkar . Araçları çalıştırma girişimlerini bastırmak için zaman damgalarına dokunmak da aynı etkiyi sağlar.
Kaz

4

Dokunma komutunun doğru cevap olduğunu düşünüyorum. Örneğin,

touch --date="`date`" aclocal.m4 Makefile.am configure Makefile.in

[./configure && make] öncesinde.

Kenar Çubuğu I: Aksi takdirde, @kaz: aclocal.m4 için bağımlılıklar eklemeye katılıyorum ve / veya yapılandırın ve / veya Makefile.am ve / veya Makefile.in, hedef sistem hakkında geçersiz olabilecek varsayımlarda bulunur. Özellikle, bu varsayımlar

1) tüm hedef sistemlerin otomatik araçlara sahip olması,

2) tüm hedef sistemlerin aynı autotools sürümüne sahip olması (örneğin bu durumda automake.1.15).

3) (1) veya (2) herhangi bir kullanıcı için doğru değilse, kullanıcının paketi, ilgili dosyaların zaman damgalarını koruyan, bakımcı tarafından üretilmiş bir TAR veya ZIP formatından çıkardığını, bu durumda tüm autotool / configure Make komutu verilmeden önce configure tarafından oluşturulan Makefile'daki /Makefile.am/Makefile.in bağımlılıkları karşılanacaktır .

İkinci varsayım birçok Mac sisteminde başarısız oluyor çünkü automake.1.14, OSX için "en son" (en azından MacPorts'ta gördüğüm şey ve görünüşe göre aynısı brew için de geçerli).

Üçüncü varsayım, Github'un olduğu bir dünyada olağanüstü bir şekilde başarısız oluyor. Bu başarısızlık, "herkesin normatif olduğunu düşünüyor" zihniyetinin bir örneğidir; Özellikle, Makefile.am dosyasını düzenlemesi gereken tek kullanıcı sınıfı olan bakımcılar, şimdi herkesi bu sınıfa koydu .

Belki de autowher ne olursa olsun bu bağımlılıkların Makefile.in ve / veya Makefile'a eklenmesini engelleyen bir seçenek vardır.

Kenar Çubuğu II [Neden @ kaz haklı]: elbette, ben ve diğer bilginler için, configure tarafından oluşturulan Makefile'ı configure ve autotools'ı yeniden çalıştırmaktan kandırmak için bir dizi [dokunma] komutunu denemek tabii ki açık. Ancak yapılandırmanın amacı bu değil; Yapılandırmanın amacı, olabildiğince çok sayıda farklı sistemdeki çok sayıda kullanıcının [./configure && make] işlemini yapmasını ve devam etmesini sağlamaktır; çoğu kullanıcı "yak traş etmek" ile ilgilenmez, örneğin autotools geliştiricilerinin hatalı varsayımlarında hata ayıklama.

Kenar Çubuğu III: ./configure, artık autotools bu bağımlılıkları eklediğinden, Github tarafından dağıtılmış paketlerle kullanılacak yanlış derleme aracı olduğu tartışılabilir.

Kenar Çubuğu IV: belki de yapılandırmaya dayalı Github depoları gerekli dokunma komutunu kendi benioku dosyalarına koymalıdır, örneğin https://github.com/drbitboy/Tycho2_SQLite_RTree .


4

2018, bir başka çözüm daha ...

https://github.com/apereo/mod_auth_cas/issues/97

içinde bazı durumlarda sadece çalıştırarak

$ autoreconf -f -i

ve başka hiçbir şey .... sorunu çözmez.

Bunu dizinde yaparsınız /pcre2-10.30.

Ne kabustu ama.

(Bu genellikle vermedi değil 2017 yılında sorunu çözmek, ama şimdi genellikle vermez önceden size vermek zorunda kaldı, onlar bir şey sabit Ayrıca, Dockerfile şimdi genellikle "ibmcom / swift-ubuntu DAN" ile başlamalıdır görünüyor - sorunu çözmek gibi görünüyor. çalışması için belirli bir sürüm / dev-build.)



0

2017 - Yüksek Sierra

Autoconf 1.15'in Mac üzerinde çalışmasını sağlamak gerçekten zor. Çalışması için bir uzman tuttuk. Her şey çok güzel çalıştı.

Daha sonra bir Mac'i High Sierra'ya yükselttim.

Docker ardışık düzeni çalışmayı durdurdu!

Autoconf 1.15 , Mac'te iyi çalışıyor olsa da .

Nasıl düzeltilir,

Kısa cevap, yerel depoyu çöpe attım ve repoyu tekrar kontrol ettim.

Bu öneri, bu QA sayfasında ve başka yerlerde karışımda belirtilmiştir.

Daha sonra iyi çalıştı!

Muhtemelen yapacak bir şey var aclocal.m4 ve benzeri dosyaları ile . (Ama gerçekten kim bilir). O dosyalara sonsuza kadar masaj yaptım ... ama hiçbir şey.

Bilinmeyen bir nedenden ötürü, deponuzu kazırsanız ve depoyu tekrar alırsanız: her şey çalışır!

Saatlerce söz konusu dosyalara dokunma / silme vb. Her combo için denedim, ama hayır. Depoyu sıfırdan kontrol edin!


Bir automake repo'yu ödeme durumuna geri almak için şunları yapabilirsiniz: "distclean yapmak".
Frederick Ollinger

Teknik olarak bu bir git komutu değildir. ./Configure'dan sonra bir depoyu temizlemek içindir. Yani otomobil yapımının bir parçası. Ancak automake kullanan herhangi bir git deposunda çalışmalıdır.
Frederick Ollinger

Gotchya, bu harika bir ipucu gibi geliyor.
Şişko

"Autoconf 1.15'in Mac üzerinde çalışmasını sağlamak gerçekten zor. Çalışması için bir Ultra Uzman tuttuk ..." - Bu bize bu araç zincirinin ne kadar bozuk olduğunu anlatıyor. Ve ne yazık ki, 20 yılı aşkın bir süredir düzeltilmedi. Düzeltmemek, istisna ettiğim bir şey. İnsanların kullanamaması için onu kırmak için hangi amaca hizmet ediyor?
jww
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.