2010-08-08 18 views
7

İşletim sistemim için NewLib'i yüklemeye çalışıyorum (bu eğiticiyi takip ediyorum: http://wiki.osdev.org/Porting_Newlib) ve bazı sorularım var.İşletim sistemim için NewLib bağlantı noktası: bazı sorular

LibGloss kez
  • yapılır ve derlenmiş, tam olarak ben yaratılmıştır libnosys.a kullanmak zorunda ne zaman? Main.c'mi derlediğimde mi?

    mipsel-uknown-elf-gcc main.c -Llibnosys.a` 
    
  • Benim crt0.c tamamlandı. Ve onu "ilk nesne olarak bağlamalıyım". Bunu nasıl yapabilirim? Böyle bir şey mi? Cevaplar için

    mipsel-uknown-elf-ld crt0.o main.o 
    

teşekkürler!

cevap

1

İlk nesneyi bağlama, görüntülediğiniz gibi çalışıyor olabilir, ancak dokümanlar, bir bağlayıcı komut dosyası kullanarak ve crt0.o dosyasını STARTUP() olarak eklediğinden bahseder. Bağlayıcı komut dosyalarına fazla aşina değilim, ancak siz varsayılan bağlayıcı script bulmak ve muhtemelen bunu oluşturabilir/ayarlayın:

Syntax'i bağlayan script: http://wiki.osdev.org/Linker_Scripts

http://sourceware.org/binutils/docs-2.19/ld/Scripts.html#Scripts

The linker always uses a linker script. If you do not supply one yourself, the linker 
will use a default script that is compiled into the linker executable. You can use the 
`--verbose' command line option to display the default linker script. Certain command 
line options, such as `-r' or `-N', will affect the default linker script. 

aynı muhtemelen inci diğer sistem kütüphaneleri ile yapılabilir her zaman, bağlantının bir parçası olmak zorundadır.

Tümü komut satırına eklemek güzel ama sonunda biraz sıkıcı.

Sorunduğunuz ya da ne yaptığınız için herhangi bir hata veya yanlış sonuç alıyor musunuz?

İlgili konular