2015-07-16 30 views
5

Avr-gcc kullanarak ve --gc ile derleme ve bağlantı kurarken -ffunction-section ve -fdata-section kullanarak ikili boyutunu küçültme girişiminde bulunma -Bölüm. Kısmi sonra yapı tamamlamak için daha sonra kullanılacak bir .a, içine birçok .o 's bağlarken { }avr-ld hatası: "gc bölümleri, bir giriş ya da tanımlanmamış bir sembol gerektirir"

bu hata oluşur

BÖLÜMLER: .LDs dosya şey içermiyor.

Bu seçenekleri açıklayan diğer iletilerden okudum, ancak ENTRY() sorununu açıklayan hiçbir şey yok. Kod boyutunu kısaltmaya çalışmadan önce kısmi aşamada buna ihtiyaç duyulmuyor (önceden varolan bağlayıcı betiği açıkça kullanmıyor).

Belgeleme devletler: kısmi bağlantıyı yaparken --gc-sectionts

"Bu seçenek ayarlanabilir (seçeneğiyle etkin '-r') Bu durumda sembollerin kök açıkça ya belirtilmelidir tuttu. bir '--entry' veya `--undefined 'seçeneği ile veya linker betiğinde bir ENTRY komutuyla.

Kaybettiğim yer burası. Bu sorunu çözmek için linker komut dosyasında --undefined, --entry veya ENTRY cmd'nin nasıl kullanılacağına dair daha fazla açıklama isterim.

+0

Yani hiç kimsenin önerisi yok gibi görünüyor. Kısmi bağlantı aşamalarında --gc bölümlerini atlamayı bitirdim ve sadece bağlantıyı son aşamasında bu bağlayıcı seçeneğini kullanın. Bu, diğer şeylerin, ikiliden gerekli şeylerin kaldırıldığı yerlerde hala sonuçlanır. Fakat bununla ilgili yeni bir soru yayınlayacağım. –

cevap

-1

Benzer bir sorun yaşadım ve pes ettim. Bootloader'ımın boyutunu önemli ölçüde azaltan -fwhole-program opsiyonu ile derledim.