2017-08-22 17 views
5

Tôi đang cố gắng tạo một ứng dụng C++ với opencv và chia sẻ ứng dụng với người dùng khác, những người không có Opencv được cài đặt trên PC của mình. Làm thế nào tôi có thể làm điều đó?Làm thế nào tôi có thể sử dụng Opencv xây dựng trong một máy tính Linux khác?

tôi đã cố gắng:

  1. tôi sao chép tất cả các tập tin header, file nguồn và thư viện ở một số/path home/Myfolder.
    1. Tôi đã tạo ứng dụng và liên kết tất cả các tệp được lưu trữ trong/home/myfolder.
    2. đặt biến môi trường LD_LIBRARY_PATH thành điểm/home/myfolder trong tệp .bashrc để ứng dụng có thể tìm thấy thư viện trong thời gian chạy.

tôi đã có thể biên dịch trên máy tính của tôi, nhưng khi tôi chia sẻ thư mục của tôi với một số máy tính khác và liên kết tất cả các thư viện, tôi nhận được lỗi tham chiếu undefined cho OpenCV.

Cảm ơn

+0

Giả sử nó là cùng một kiến ​​trúc và bạn chỉ muốn chia sẻ bản thân ứng dụng, tại sao không chỉ truyền tệp thực thi cho máy tính khác và chạy? (Tất nhiên bạn sẽ cần phải liên kết tĩnh các thư viện OpenCV). – Yotam

+0

Cảm ơn bạn đã trả lời. Cả PC đều có 64 bit. Nếu tôi chỉ chia sẻ tệp thực thi, nó phải được liên kết với tất cả các thư viện như opencv, không có trong máy tính khác. Vì vậy, tôi đang thiết lập đường dẫn variabel môi trường trong .bashrc để trỏ thư mục được chia sẻ và nó có các tập tin lib Opencv, nhưng tôi vẫn phải đối mặt với lỗi tham chiếu không xác định. – sumit

+0

Bạn đã thử biên dịch nó bằng liên kết tĩnh chưa? – api55

Trả lời

0

Câu trả lời này có ý nghĩa bảo mật - tự thông báo trước khi sử dụng và chỉ sử dụng trên mạng riêng.


Bạn có thể cho phép người dùng khác ssh vào máy tính của bạn và chuyển tiếp kết nối X11 để máy tính của mình bằng cách sử dụng -X hay -Y tùy chọn.

Vì vậy, người dùng khác sẽ làm gì:

ssh -Y [email protected] yourApp 

Bạn sẽ cần phải suy nghĩ về việc bạn muốn tin tưởng người đó để đăng nhập như bạn, hoặc cho dù bạn muốn làm cho một người dùng khác nhau trên máy tính của bạn mà chỉ có thể chạy ứng dụng cụ thể của bạn và không có ứng dụng nào khác.


Một lựa chọn khác có thể là để cho phép người dùng khác làm cho màn hình X11 của mình có sẵn cho máy tính của bạn, bởi anh ta gõ như sau trên máy tính của mình:

xhost + 

Sau đó, bạn có thể bắt đầu ứng dụng của bạn trên của bạn máy, nhưng với màn hình được chuyển tiếp tới máy của anh ấy - theo cách đó anh ấy không cần phải đăng nhập vào máy của bạn hoặc có mật khẩu của bạn:

DISPLAY=<otherPC>:0 yourApp 
1

Câu trả lời là liên kết tĩnh. Nếu bạn không quan tâm đến kích thước thực thi và máy đích không có các thư viện cần thiết, chỉ cần cung cấp chúng bên trong tệp thực thi. Vui lòng xem câu hỏi this để tham khảo.

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