Tôi đã tạo một bản nhị phân ARM gốc bằng cách sử dụng chuỗi công cụ GCC Android (Linux thuần túy, không có android hoặc NDK)."Không có tập tin hoặc thư mục" cố gắng thực thi nhị phân linux trên thiết bị Android
Tôi kết nối, từ PC, qua adb shell, tới máy tính bảng chạy Android 4. Tôi "adb push" 'đã sửa mã nhị phân đó vào/system/bin trên thiết bị đó, hy vọng tôi có thể thực thi ở đó. Tôi đã đánh dấu nó là có thể thực thi với chmod 777.
Nếu tôi cố thực hiện nó, tôi sẽ nhận được "Không có tệp hoặc thư mục như vậy".
Thông tin thêm: Chương trình nhỏ sử dụng fc và fm libs. Vì chuỗi công cụ ARM dường như không có crt1, trong đó, từ ví dụ tôi tìm thấy, thường chứa mã khởi động, chúng tôi đã tìm kiếm thông qua các tệp có chứa nó trong bản dựng android, tìm thấy crtbegin_dynamic và crtend_dynamic, nhưng tương đương _static, một trong các cặp đã bị mất tích, vì vậy tôi đã không vượt qua -static để GCC. Nó được xây dựng với "-nostdlib".
Điều gì có thể là (các) vấn đề?
Bạn cần sử dụng nm hoặc tương tự để tìm phụ thuộc của tệp thực thi của bạn, nhưng thực tế bạn chỉ nên sử dụng gcc NDK để xây dựng cho Android trừ khi bạn nhấn mạnh vào việc làm theo cách khó. ** Xin lưu ý rằng câu hỏi này không liên quan gì đến thư viện bị thiếu cho máy phát triển **, mặc dù đã thu hút một câu trả lời phổ biến về chủ đề hoàn toàn khác biệt đó một cách bí ẩn. –