Avatar billede firehat Nybegynder
22. maj 2005 - 17:04 Der er 9 kommentarer og
1 løsning

Assembler: Binary output format does not support external refer..

Hej,

Jeg er ved at følge denne guide:  http://www.invalidsoftware.net/os/?the_id=11 , men når jeg vil kompilere assemblerdelen, for jeg følgende fejl:

>nasm Loader.asm -o Loader.o
Loader.asm:9: error: binary output format does not support external references

Koden i Loader.asm ser sådan her ud:
========================================================
[BITS 32] ; protected mode

[global start]
[extern _main] ; this is in our C++ code

start:
    call _main ; call int main(void) from our C++ code
    cli ; interrupts could disturb the halt
    hlt ; halt the CPU
========================================================

Hvad kan fejlen være?

Tak på forhånd :)
Mikkel
Avatar billede Slettet bruger
22. maj 2005 - 20:03 #1
Der står du skal bruge:  "nasm -f aout Loader.asm -o Loader.o" og ikke "nasm Loader.asm -o Loader.o" :o)
Avatar billede firehat Nybegynder
22. maj 2005 - 20:13 #2
hmm..nu for jeg denne fejl:

>nasm -f aout Loader.asm -o Loader.o
nasm: fatal: unrecognised output format `aout' - use -hf for a list
type `nasm -h' for help
Avatar billede Slettet bruger
22. maj 2005 - 20:27 #3
Underligt.. Hvilken version af nasm bruger du?

Prøv evt. at bruge elf i stedet for aout, altså "nasm -f elf Loader.asm -o Loader.o"
Avatar billede firehat Nybegynder
22. maj 2005 - 20:28 #4
Hvis jeg skriver win32 istedet for aout, compiler den filen. Men når jeg så skal linke mine filer sammen skriver den:
ld.exe: warning: cannot find entry symbol start; defaulting to 00100000

hvis jeg bare inorere det og kopiere det ned til en diskette med
debug Kernel.bin
- w 100 0 0 1
- q

og prøver det, så sker der ikke noget andet end en '_' blinker :(
Avatar billede firehat Nybegynder
22. maj 2005 - 20:29 #5
hmm filen jeg hentede hed: nsm09839.zip

Prøver lige med elf
Avatar billede firehat Nybegynder
22. maj 2005 - 20:32 #6
Det samme sker med elf
Avatar billede firehat Nybegynder
22. maj 2005 - 20:42 #7
Har nu hentet en anden version af NASM, hvor aout virker - uden warnings :)

Men når jeg så har linket den til Kernel.bin, vil jeg gerne have det ned på en diskette og gør følgende:
debug Kernel.bin
- w 100 0 0 1
- q

Men når jeg så prøver disketten så er der igen bare en _ der blinker ?
Avatar billede Slettet bruger
22. maj 2005 - 20:56 #8
Hmm... Jeg tror problemet er, at du ikke har en bootloader. Du kan enten selv lave en, ellers kan du bruge en færdiglavet, som f.eks. GRUB.
Avatar billede firehat Nybegynder
10. juni 2005 - 16:51 #9
Tak for hjælpen, ligger du et svar?
Avatar billede Slettet bruger
11. juli 2005 - 13:58 #10
Svar...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester