32 bit uygulamayı 64 bitte derlemek, -lX11'i bulamıyor


9

Gibi bir komut çağırıyorum:

g++ ... -o"myapp" -lX11 ...

Ve alıyorum

/usr/bin/ld: cannot find -lX11

Çok amaçlı desteği desteklemek için aşağıdaki paketleri yükledim:

ia32-libs, libc6-dev-i386 and g++-multilib

Ama boşuna. / Usr / lib32 içinde herhangi bir X11.so yok gibi görünüyor, aslında bu dizinde sadece 52 kütüphane var. Kitaplıkları manuel olarak yüklemeniz gerektiği izlenimindeyim, ancak bir sonraki kontrol etmem konusunda bir kayıptayım.

Herhangi bir yardım takdir.


1
Komutun çıktısını gösterebilir misiniz ldconfig -p | grep libX11\\.?
Martin Dirichs

Yanıtlar:


5

-devKütüphane paketlerinde değil, paketler tarafından sağlanan başlık dosyalarına ihtiyacınız vardır . Bu yüzden yüklemeyi deneyin libx11-dev. Diğer kütüphaneler hakkında benzer hatalar alabilmenize rağmen bu belirli derleme hatasını düzeltmelidir (ve sonra -devpaketlerini yükleyebilirsiniz .)

Bu paketler ikili dosyalar yerine başlık dosyaları sağlamasına ve genel olarak başlık dosyalarında, önişlemci makrolarının kullanılmasıyla desteklenen tüm mimarileri hesaba katsa da, -devUbuntu'daki paketler mimariye özgü olma eğilimindedir ve bu durum libx11-dev(görüldüğü gibi) burada bir sürümü genişleterek ve o sürümde .deblistelenen paketleri bularak libx11-dev). Ubuntu sisteminiz 64 bit olduğundan ve kütüphanenin 32 bit sürümüne bağlanması gereken 32 bit bir program derlediğiniz için, muhtemelen 32 bit sürümünü yüklemeniz gerekir libx11-dev. apt-getVeya ile yüklüyorsanız aptitude, libx11-dev:i386yüklenecek paket olarak belirterek belirtebilirsiniz ( malç destekleniyor ve kullanılıyor).

http://packages.ubuntu.com/-dev bir kütüphane paketine karşılık gelen paketin adını bulmak için iyi bir kaynaktır . Her zaman kütüphane paketinin adı hemen ardından gelmez -dev; Bazen sürüm numaraları, özellikle bir süre sonra, kütüphane paket adı içinde mevcut -, olduğu mevcut karşılık gelen adına -devpaket.

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.