Cố gắng tải một lib được chia sẻ ra khỏi hiện tại '.' dir trong một bài kiểm tra đơn vị trên osx.làm thế nào để làm cho python tải dylib trên osx
gì hoạt động trên Linux và NetBSD có một liên kết tượng trưng _mymodule.so --> ../.libs/libmymodule.so
nhưng trên OSX, python của import mymodule
sẽ không tìm thấy
_mymodule.dylib --> ../.libs/libmymodule.dylib
Tôi đã thử thêm
export DYLD_LIBRARY_PATH=.:$DYLD_LIBRARY_PATH
đến kịch bản env, nogo. Bất kỳ trợ giúp nào được đánh giá cao.
-ed
cập nhật 4/6/10:
giải quyết với các thông tin từ cho Miễn phí dưới đây. Nhưng chỉ cần sao chép hoặc ln -s'ing dylib vào một tên .so đã không giải quyết nó hoàn toàn. Vẫn không tải được. Nhưng nói với libtool để liên kết lib với cờ -module tạo ra một .so lib mà sẽ tải. Phiên bản Python của lib hoạt động ngay bây giờ.
Bây giờ, nếu tôi chỉ có thể nhận được lib hoạt động. Tôi đang xây dựng perl swig, python, ruby, và lib lib và sửa chữa này chỉ có python và lua làm việc.
cảm ơn! câu trả lời của bạn đưa tôi ra khỏi mương này, đưa tôi xuống con đường đi đúng hướng. – navicore
Cũng giống như một phòng ngừa, không bao giờ sử dụng libs tĩnh trong OS X. Chúng "không được chấp nhận" và OSX sẽ _always_ liên kết các thư viện động trên các thư viện tĩnh khi có thể ngay cả khi bạn liên kết cụ thể đến một thư viện tĩnh. ví dụ: nếu bạn liên kết đến /path/to/libfoo.a và libfoo.dylib hoặc libfoo.so tồn tại ở bất kỳ đâu trên đường dẫn, trình liên kết sẽ bỏ qua yêu cầu của bạn dẫn đến một số lỗi biểu tượng thời gian chạy rất thú vị nếu hai bảng có các bảng khác nhau. – jkyle