Câu hỏi Xác định X libs trong khi cài đặt từ nguồn không có sudo


Tôi đang cố gắng cài đặt một chương trình (HTK) từ nguồn, nhưng sau ./configure (không đưa ra lỗi), make all phàn nàn rằng /usr/bin/ld: cannot find -lX11. Đây là một vấn đề nổi tiếng được cho là có thể được giải quyết qua sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6.3.0 /usr/lib32/libX11.so. Tuy nhiên, chúng tôi không muốn sử dụng sudo. Có cách nào để làm điều này tại địa phương?

xorg-dev et al. đã được cài đặt. (Đáng buồn thay, HTK chỉ bán miễn phí nên nó không được tìm thấy trong bất kỳ repos nào.)


2
2018-06-02 16:15


gốc




Các câu trả lời:


Nếu xorg-dev được cài đặt, bạn nên có một tập tin có tên /usr/lib/i386-linux-gnu/libX11.so (hoặc /usr/lib/x86_64-linux-gnu/libX11.so trên 64-bit, nhưng HTK biên dịch trong 32-bit ngay cả trên đĩa bitmap 64-bit, trừ khi bạn vá nó, do đó, nó là i386-linux-gnu / libX11.so được sử dụng anyway)

thì bạn có thể sử dụng tùy chọn --x-libraries của ./configure

./configure --x-libraries=/usr/lib/i386-linux-gnu/

cộng với bất kỳ tùy chọn nào khác cho ./configure mà bạn cần (xem ./configure --help để có thêm tùy chọn và thông tin về các tùy chọn)

Ngoài ra, điều này có thể hoạt động:

ln -s /usr/lib/i386-linux-gnu/libX11.so.6.3.0 ~/lib/libX11.so

nếu nó không đủ chạy lại ./configure sử dụng tùy chọn --x-libraries

./configure --x-libraries=~/lib

Là một giai thoại bên lưu ý, tôi chỉ cần tải về htk-3.4.1 và ./configure && make đã làm việc mà không có vấn đề gì. Tôi có libX11.so trong cả hai /usr/lib/i386-linux-gnu/libX11.so và /usr/lib/x86_64-linux-gnu/libX11.so nhưng không có liên kết tượng trưng trong / usr / lib32. Tôi sử dụng gcc 4.6.3 và tôi đang sử dụng ubuntu 12.04 64 bit nhưng HTK đã biên dịch -m32 tùy chọn gcc (tức là biên dịch ở chế độ 32 bit)

./configure nói:

kiểm tra chính trong -X11 ... có.

file HTKTools/HInit trả lại:

HTKTools / HInit: ELF 32 bit thực thi ELF


2
2017-07-29 09:43