Biên dịch ứng dụng 32 bit trên 64 bit, không thể tìm thấy -lX11


9

Tôi đang gọi một lệnh như:

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

Và nhận được

/usr/bin/ld: cannot find -lX11

Tôi đã cài đặt các gói sau để hỗ trợ multiarch:

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

Nhưng không có kết quả. Dường như không có bất kỳ X11.so nào trong / usr / lib32, thực tế chỉ có 52 thư viện trong thư mục đó. Tôi có ấn tượng rằng bạn nên cài đặt thư viện theo cách thủ công, nhưng tôi không biết nên kiểm tra gì tiếp theo.

Bất kỳ trợ giúp đánh giá cao.


1
Bạn có thể hiển thị đầu ra của lệnh ldconfig -p | grep libX11\\.?
Martin Dirichs

Câu trả lời:


5

Bạn cần các tệp tiêu đề, được cung cấp bởi -devcác gói chứ không phải trong các gói thư viện. Vì vậy, hãy thử cài đặt libx11-dev. Điều đó sẽ khắc phục lỗi xây dựng cụ thể này, mặc dù bạn có thể gặp lỗi tương tự về các thư viện khác (và sau đó bạn có thể cài đặt các -devgói của chúng .)

Mặc dù các gói này cung cấp các tệp tiêu đề thay vì nhị phân và trong các tệp tiêu đề chung chiếm tất cả các kiến ​​trúc được hỗ trợ thông qua việc sử dụng các macro tiền xử lý, tuy nhiên -devcác gói trong Ubuntu có xu hướng cụ thể về kiến ​​trúc và đây là trường hợp libx11-dev(như có thể thấy ở đây bằng cách mở rộng một bản phát hành và tìm các .debgói được liệt kê libx11-devtrong bản phát hành đó). Vì hệ thống Ubuntu của bạn là 64 bit và bạn đang biên dịch chương trình 32 bit phải liên kết với phiên bản 32 bit của thư viện, có lẽ bạn sẽ cần phải cài đặt phiên bản 32 bit libx11-dev. Nếu bạn đang cài đặt với apt-gethoặc aptitude, bạn có thể chỉ định rằng bằng cách chỉ định libx11-dev:i386là gói cần cài đặt (vì nhiều chế độ được hỗ trợ và đang được sử dụng).

http: //packages.ubfox.com/ là một tài nguyên tốt để tìm tên của -devgói tương ứng với gói thư viện. Không phải lúc nào tên gói thư viện cũng được theo sau -dev; đôi khi số phiên bản có trong tên gói thư viện, đặc biệt là sau a -, không có trong tên của -devgói tương ứng .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.