2010-06-18 38 views
10

Bạn có thể giải thích cách liên kết với tùy chọn -l đối với các tệp .la hoạt động không?gcc -l tùy chọn và tệp thư viện .la

Theo kinh nghiệm của tôi, tôi chỉ liên kết với các tệp thư viện tĩnh (.a).

Bây giờ tôi đã xem xét một số Makefiles do Qt tạo ra và không thể tìm ra, cách trình liên kết con số sử dụng/mở tệp libQtCore.la, khi chuyển mạch QtCore -l được chỉ định thay vì tìm kiếm libQtCore.a.

Ngoài ra - trạng thái thủ công gcc, chuyển đổi -l [tên thư viện] sẽ bao gồm lib [tên thư viện] .a, không phải lib [libraryname] .la.

+0

Tôi không quen với phần mở rộng '.la'. 'File yourfile.la' nói gì? Có lẽ nó chỉ giống như một kho lưu trữ đối tượng và có thể được đổi tên thành '.a' – sellibitze

Trả lời

12

.la tệp ở mức xa như tôi biết libtool rác và không được liên kết theo cách thủ công. Chúng được sử dụng trong nội bộ bởi libtool vì bất kỳ lý do gì nó cần chúng. Bạn nên liên kết đến tệp *.a. Trong bản cài đặt/xây dựng Qt, cần có các tệp *.a để liên kết tới.

+0

cách biên dịch với .la để tạo thư viện tĩnh ví dụ example.la – HMS

+1

@Muhammad Như tôi đã nói, các tệp' * .la' là rác . Chúng không phải là thư viện tĩnh. Mở một tài khoản, bạn sẽ thấy đó là một chuỗi văn bản. Bạn muốn các tập tin '* .a'. – rubenvb

Các vấn đề liên quan