Tôi cần tối ưu hóa kích thước tệp thực thi của mình ( ARM
phát triển) và tôi nhận thấy rằng trong lược đồ xây dựng hiện tại ( gcc
+ ld
) các biểu tượng không sử dụng của tôi không bị loại bỏ.
Việc sử dụng arm-strip --strip-unneeded
cho các tệp thực thi / thư viện kết quả không thay đổi kích thước đầu ra của tệp thực thi (tôi không biết tại sao, có lẽ nó chỉ đơn giản là không thể) .
Cách (nếu nó tồn tại) sẽ là gì để sửa đổi đường ống xây dựng của tôi, để các ký hiệu không sử dụng bị loại bỏ khỏi tệp kết quả?
Tôi thậm chí sẽ không nghĩ đến điều này, nhưng môi trường nhúng hiện tại của tôi không phải là rất "mạnh mẽ" và tiết kiệm thậm chí 500K
không dẫn đến 2M
kết quả tăng hiệu suất tải rất tốt.
Cập nhật:
Thật không may, gcc
phiên bản hiện tại tôi sử dụng không có -dead-strip
tùy chọn và -ffunction-sections... + --gc-sections
for ld
không mang lại bất kỳ sự khác biệt đáng kể nào cho kết quả đầu ra.
Tôi bị sốc vì điều này thậm chí đã trở thành một vấn đề, bởi vì tôi chắc chắn rằng điều đó gcc + ld
sẽ tự động loại bỏ các ký hiệu không sử dụng (tại sao họ thậm chí phải giữ chúng?).
boost
thư viện, .exe
tệp kết quả chứa nhiều tệp đối tượng không sử dụng và do các thông số kỹ thuật của thời gian chạy nhúng hiện tại của tôi , việc khởi động một 10mb
ứng dụng mất nhiều thời gian hơn, chẳng hạn như khởi động một 500k
ứng dụng.