Tôi muốn biên dịch chéo các ngôn ngữ họ C (C, C ++, Objective-C và Objective-C ++) cho Raspberry Pi bằng Clang và LLVM trên máy tính xây dựng có kiến trúc khác. Làm thế nào tôi có thể làm điều này?
Tôi muốn biên dịch chéo các ngôn ngữ họ C (C, C ++, Objective-C và Objective-C ++) cho Raspberry Pi bằng Clang và LLVM trên máy tính xây dựng có kiến trúc khác. Làm thế nào tôi có thể làm điều này?
Câu trả lời:
Vừa hoàn thành bài viết của tôi, biên dịch chéo cho Raspberry từ Sierra , về chính xác điều này. Theo Mac OS Sierra. Nhưng đối với tiếng kêu thì nó hơi quan trọng.
Trong bài viết này tôi đã chia sẻ kinh nghiệm (khiến tôi mất một số ngày đau khổ). Hy vọng nó sẽ hữu ích. Nói tóm lại, tất cả những gì bạn phải làm là chỉ định rootfs và mục tiêu triple:
path/to/clang --target=arm-linux-gnueabihf --sysroot=/some/path/arm-linux-gnueabihf/sysroot my-happy-program.c -fuse-ld=lld
Tôi đã thêm -fuse-ld=lld
tùy chọn, vì nếu không clang sẽ cố gắng tra cứu binutils cũ.
Tôi đi theo này bài viết và nó dường như làm việc tốt cho các chương trình tầm thường (thứ console / chuỗi / toán học, không có nhiều cờ tối ưu). Tôi đã sử dụng ver 1.19 của crosstool-ng trên máy tính xách tay x86-64 chạy ZenWalk 7.0
Dường như cũng có bài đăng này tại SO, có thể hữu ích (chưa đọc hết thông tin này).