Biên dịch chéo sang Raspberry Pi từ Windows với Thư viện bên ngoài


7

Thực hiện theo hướng dẫn này, http://www.a2p.it/wordpress/tech- ware /evelopment / remote-debugging-raspberrypi /, tôi đã có thể biên dịch chéo từ Windows sang Raspberry Pi. Nhưng có thể biên dịch chéo với các thư viện bên ngoài như PCL và OpenCV. Tôi có thể xây dựng một dự án bằng công cụ Cmake bằng cách sử dụng chuỗi công cụ chéo không?


3
Bạn phải biên dịch chéo các thư viện trước.
goldilocks

Có phải sudo apt-get install <library-pack> tải xuống và cài đặt các nhị phân dựng sẵn?
Xegara

Câu trả lời:


2

Nếu bất cứ điều gì bạn đang biên dịch liên kết đến, ví dụ libfoobar, thì libfoobar phải là:

  • Trong đường dẫn thư viện khi bạn biên dịch. Cách dễ nhất để làm điều đó là để thiết lập một hệ thống phân cấp cơ bản ( bin, lib, include) và cài đặt chúng vào đó. Tôi sẽ coi đây là thư mục "dàn dựng".

  • Phiên bản được biên dịch cho pi . Đây thậm chí có thể là phiên bản từ pi , mặc dù việc liên kết ở đây có thể rắc rối hơn nhiều so với giá trị của nó, và bạn có thể dễ dàng đập đầu vào tường. Điều lý tưởng để làm là lấy các nguồn thư viện, biên dịch chéo chúng và cài đặt vào thư mục dàn.

WRT thư mục dàn, bạn có thể sử dụng thư mục sysroot của trình biên dịch chéo (chứa tất cả các lib cơ bản, ví dụ: glibc), tuy nhiên, có lẽ nên tạo một thư mục cụ thể cho mục đích đó và thêm -L/wherever/vào LDFLAGS. Tôi chưa sử dụng công cụ x từ liên kết của bạn, nhưng tôi cho rằng nó sử dụng crosstool-ng . Nếu bạn nhìn vào các tài liệu crosstool-ng 5 - Using the toolchain.txtthì có nhiều ghi chú về điều này. Công cụ x dựng sẵn đó có thể đã có một cái gì đó được cấu hình dọc theo các dòng này.

Nếu các yêu cầu thư viện của bạn khá đơn giản, việc xây dựng chúng từ nguồn không gặp nhiều rắc rối. Tuy nhiên, một điều bạn có thể thử là gắn thư mục gốc của pi dưới dạng chia sẻ NFS (hoặc Samba? Tôi không biết nhiều về windows) và sử dụng nó làm thư mục dàn dựng. Sau đó, bạn chỉ cần cài đặt các gói '-dev' với apt-get.


Về phần sau của câu trả lời của bạn, tôi chỉ muốn xác nhận sự hiểu biết của tôi. Bạn có nghĩa là tôi sẽ liên kết dự án của tôi với gốc của pi (nơi cài đặt <gói lib>) và bây giờ tôi có thể biên dịch chéo?
Xegara

Vâng. Vì vậy, sau đó bạn sẽ biên dịch một cái gì đó như -L/mnt/lib -L/mnt/usr/lib -I/mnt/include -I/mnt/usr/include.
goldilocks
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.