Tôi cảm thấy lạ khi sử dụng -Wl,-Bstatic
để thông báo cho gcc
thư viện nào tôi muốn liên kết với tĩnh. Sau khi tất cả tôi đang nói gcc
trực tiếp tất cả các thông tin khác về liên kết với các thư viện (-Ldir
, -llibname
).Nói trực tiếp gcc để liên kết thư viện tĩnh
Có thể cho trình điều khiển gcc trực tiếp thư viện nào nên được liên kết tĩnh không?
Làm rõ: Tôi biết rằng nếu một thư viện nào đó chỉ tồn tại trong các phiên bản tĩnh nó sẽ sử dụng nó mà không -Wl,-Bstatic
, nhưng tôi muốn ngụ ý gcc
thích thư viện tĩnh. Tôi cũng biết rằng việc chỉ định tệp thư viện trực tiếp sẽ liên kết với nó, nhưng tôi muốn giữ ngữ nghĩa để bao gồm các thư viện tĩnh và động giống nhau.
Thiên Chúa nếu chỉ Gnu đã thực hiện điều này mặc định ở nơi đầu tiên thay vì tiền tố lib điên rồ. Ôi thời gian và sự thất vọng chúng tôi đã cứu. – Timmmm
Radek, đây là tùy chọn '-l:' được ghi chép? Tôi cần sử dụng phiên bản gcc nào? – osgx
Trên thực tế, nó là tùy chọn của 'ld' linker https://sourceware.org/binutils/docs/ld/Options.html" * '-l namespec' .. Nếu namespec có dạng: filename, ld sẽ tìm kiếm đường dẫn thư viện cho một tệp gọi là tên tệp, nếu không nó sẽ tìm đường dẫn thư viện cho một tệp có tên libnamespec.a .. .. trên hệ thống ELF .., ld sẽ tìm kiếm thư mục cho thư viện có tên libnamespec.so trước khi tìm kiếm tên libnamespec. a. .. Lưu ý rằng hành vi này không áp dụng cho: tên tệp, luôn chỉ định tệp có tên tệp. * ". Kể từ khi binutils 2,18 - https://sourceware.org/binutils/docs-2.18/ld/Options.html – osgx