Tôi đang phát triển Ứng dụng Ca cao sử dụng phiên bản mới nhất của Xcode 4, tôi muốn liên kết các thư viện động với dự án của tôi (dylibs
).Tại sao install_name_tool và otool cần thiết cho các thư viện Mach-O trong Mac OS X?
Tôi đọc ở đâu đó rằng việc thêm thư viện trong dự án của tôi là không đủ vì tôi phải chạy install_name_tool
và otool
để làm cho dự án của tôi sử dụng thư viện đã được nhóm trong dự án của tôi.
Tôi đã đọc các trang hướng dẫn sử dụng cho install_name_tool
, nhưng tôi không hiểu TẠI SAO tôi phải làm điều này.
Thư viện hoạt động như thế nào? Đặc biệt quan tâm ở phần nơi ứng dụng và các thư viện có đường dẫn trỏ đến địa điểm cụ thể trong máy tính của tôi, giống như /usr/local/lib/mylibrary.dylib
khi chạy otool -L
'otool -L' cũng hữu ích khi hiển thị tên và thư viện được chia sẻ (mà bạn có thể muốn thay đổi bằng' install_name_tool'. – par
Lưu ý: install_name_tool không thành công; luôn kiểm tra kỹ xem nó có thực sự làm những gì bạn đã nói không (sử dụng 'otool -L'. –
geowar
Dường như các thuộc tính trong một dylib không thực sự quan trọng. Chúng chỉ được sử dụng khi liên kết một tệp thực thi với dylib để sao chép các thuộc tính từ dylib đến tệp thực thi. trường hợp khi bạn đã có một tệp thực thi được liên kết với dylib nhưng bạn cần phải thay đổi đường dẫn, thì chỉ cần chỉnh sửa tệp thực thi để đặt LC_LOAD_DYLIB và tùy chọn, LC_RPATH. Trường hợp thứ hai chỉ cần thiết nếu tệp đầu tiên có @rpath trong nó. –