2012-06-12 24 views
10

Gcc derleme kodumda Cannot find entry symbol _start defaulting to 00000 hatası veriyor. Bana neden ve nasıl düzeltileceğini söyleyen var mı?Giriş sembolü bulunamıyor _Start

Komut satırı arm-none-eabi-gcc -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp file path ve hedef platform a-8 sitara korteks işlemcisidir.

+1

Daha fazla bilgi göndermeniz gerekiyor. Özellikle komut satırınız ve hedef platformunuz. –

+0

komut satırı, kol-none-eabi-gcc -O3 -march = armv7-a -mtune = cortex-a8 -mfpu = neon-üçlü-vektörize -mfloat-abi = softfp dosya yolu ve hedef platform a-8'dir. sitara cortex işlemci –

+2

'_start' standart kütüphanenin bir parçasıdır. 'Ana' olarak adlandırılan işlevdir. Programınızla otomatik olarak bağlantılı olması gereken "crt0.o" ifadesinde tanımlanmalıdır. Gcc'nizin farklı şekilde çalışması ve bazı ek işlemler gerektirmesi mümkündür. Belki de belgelerinde bazı çalışma örnekleri var mı? –

cevap

3

-onraki kısım, takım zincirinizin belirli bir işletim sistemi için oluşturmadığı anlamına gelir, bu nedenle bir _start giriş noktası tanımlamanız gerekir. Belirli bir işletim sistemi için oluşturulmuş çıplak-metal olmayan araç zincirleri için, her şey kurulduğunda ana çağrı yapabilmek için standart kütüphane tarafından başlatılır.

5

Derleyicinin yukarıdaki hatayı atmasının tek nedeni, kodunuzun çalıştırılması için OS tarafından oluşturulan başlatma kodunun (_start işlevi) varsayılan veya kayıtlı işlev ana dosyasını bulamamasıdır. Yani ya ana işlevi yerine _start işlevini kullanabilirsiniz, ancak derleme komutu gcc -nostartfiles filename.c olmalıdır ancak _start kullanarak bunun yerine ana kullanmak için çok daha fazla istisna vardır.