Tôi đang làm việc với JNI. Tôi có một thư viện bao bọc (wrapper.so) sử dụng hai thư viện được chia sẻ: one.so và two.sođường dẫn tương đối cho các thư viện được chia sẻ
Mọi thứ đều hoạt động tốt. Tất cả * .so nằm trong thư mục lib, bên trong thư mục chương trình.
Vấn đề là, nếu tôi sao chép thư mục này sang máy tính khác, tôi sẽ gặp sự cố liên kết.
Hãy nói rằng tôi chạy trên một user2 máy (/ home/user2/chương trình), và tôi biên soạn trong một user1 máy (/ home/user1/chương trình), tôi nhận được lỗi khi liên kết:
UnsatisfiedLinkError: /home/user1/program/lib/one.so
làm thế nào tôi có thể làm việc liên kết các thư viện tương đối so với thư mục chương trình cha mẹ (như, tìm kiếm this_foler/lib ??
tôi đang soạn thảo như :
g++ -c -o src/wrapper.o src/wrapper.c
g++ -shared -o wrapper.so src/wrapper.o one.so two.so
@Rockskull nếu câu trả lời hoạt động, bạn có nghĩa vụ phải chấp nhận nó, bỏ phiếu cho nó hoặc cả hai. Nếu bạn không một số người có thể không bận tâm trả lời câu hỏi của bạn nex thời gian. –
Xin lỗi. Mới đối với tràn ngăn xếp. Tôi chấp nhận nó, nhưng tôi không thể bỏ phiếu. – lcguida
@EmployedRussian Bạn có biết lệnh tương ứng cho trình biên dịch intel không? Cảm ơn. – xslittlegrass