Kompilasi aplikasi 32-bit pada 64-bit, tidak dapat menemukan -lX11


9

Saya memohon perintah seperti:

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

Dan mendapatkan

/usr/bin/ld: cannot find -lX11

Saya telah menginstal paket-paket berikut untuk mendukung multiarch:

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

Tetapi tidak berhasil. Tampaknya tidak ada X11.so di / usr / lib32, sebenarnya hanya ada 52 perpustakaan di direktori itu. Saya mendapat kesan Anda harus menginstal perpustakaan secara manual, tetapi saya bingung apa yang harus saya periksa selanjutnya.

Setiap bantuan dihargai.


1
Bisakah Anda menunjukkan output dari perintah ldconfig -p | grep libX11\\.?
Martin Dirichs

Jawaban:


5

Anda memerlukan file header, yang disediakan oleh -devpaket, dan bukan di paket perpustakaan itu sendiri. Jadi, coba instal libx11-dev. Itu harus memperbaiki kesalahan build khusus ini, meskipun Anda mungkin mendapatkan kesalahan serupa tentang perpustakaan lain (dan kemudian Anda dapat menginstal -devpaket mereka .)

Meskipun paket-paket ini menyediakan file header daripada binari, dan secara umum file header berisi akun untuk semua arsitektur yang didukung melalui penggunaan preprocessor macro, -devpaket-paket di Ubuntu cenderung khusus untuk arsitektur, dan ini adalah kasus untuk libx11-dev(seperti yang dapat dilihat) di sini dengan memperluas rilis dan menemukan .debpaket yang tercantum libx11-devdalam rilis itu). Karena sistem Ubuntu Anda 64-bit dan Anda sedang menyusun program 32-bit yang harus terhubung dengan versi perpustakaan 32-bit, Anda mungkin perlu menginstal versi 32-bit libx11-dev. Jika Anda menginstal dengan apt-getatau aptitude, Anda dapat menentukannya dengan menunjukkan libx11-dev:i386sebagai paket yang akan diinstal (sejak multarch didukung dan digunakan).

http://packages.ubuntu.com/ adalah sumber yang bagus untuk menemukan nama -devpaket yang sesuai dengan paket perpustakaan. Tidak selalu nama paket perpustakaan segera diikuti oleh -dev; kadang-kadang nomor versi hadir dalam nama paket perpustakaan, terutama setelah a -, tidak ada dalam nama -devpaket yang sesuai .

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.