Strona 1 z 1

Kompilacja pliku *.cpp do *.bin

: 06 sie 2011, 21:33
autor: norbus2000a
Jak skompilować plik *.cpp do *.bin?
Szukałem w Google i nic :!:
Proszę, pomóżcie!!

Re: Kompilacja pliku *.cpp do *.bin

: 07 sie 2011, 00:00
autor: mario_7
Co masz na myśli pisząc o pliku .bin?

Re: Kompilacja pliku *.cpp do *.bin

: 07 sie 2011, 10:08
autor: norbus2000a
Plik binarny.

Re: Kompilacja pliku *.cpp do *.bin

: 07 sie 2011, 10:14
autor: kabanek
no to nic prostszego :) wystarczy kompilować program i zmienić nazwę dodając na końcu .bin

Re: Kompilacja pliku *.cpp do *.bin

: 07 sie 2011, 10:26
autor: norbus2000a
Tak. Ale potem jak dodaję plik do obrazu dyskietki z bootloaderem i emuluje

Kod: Zaznacz cały

qemu -fda myfirst.flp

to mi wywala

Kod: Zaznacz cały

FATAL: no bootable device 
a jak dodam zamist tego plik *.bin kompilowany nasm'em

Kod: Zaznacz cały

nasm -f bin -o bin/kernel.bin source/kernel.asm
to jest OK. :cry:

Re: Kompilacja pliku *.cpp do *.bin

: 07 sie 2011, 11:22
autor: mario_7
Plik binarny to każdy plik "nietekstowy", więc to bardzo szerokie pojęcie. Rozszerzenie .bin nie jest charakterystyczne dla żadnego rodzaju plików - to tylko umowne 3 litery oznaczające w danym przypadku dany rodzaj pliku. Zatem pisząc "plik binarny" musisz podać kontekst, bo inaczej nic to nie oznacza.

To z czym masz problem, to fakt, że gcc w procesie kompilacji tworzy linuksowy plik wykonywalny (ELF), a nie "czysty" kod maszynowy.
Pewnie wystarczy, gdy skorzystasz z narzędzia objcopy, np:

Kod: Zaznacz cały

gcc -o test test.c
objcopy -O binary test test.bin
Tutaj kilka słów na ten temat:
http://stackoverflow.com/questions/3615 ... chine-code

Re: Kompilacja pliku *.cpp do *.bin

: 07 sie 2011, 12:03
autor: norbus2000a
Dzięki! Ale Chciałbym jeszcze żebyście mi pomogli utworzyć obraz dyskietki z test.bin i bootload.bin
(ze strony http://mikeos.berlios.de)

Chciałbym żeby zawartość pliku test.c była następująca

Kod: Zaznacz cały

int main()
{
	printf("HHH");
	return 0;
}
I jak dołączam pliki i emuluje QEMU to znów wywala, że nie ma bootdisk'u

Kod: Zaznacz cały

dd status=noxfer conv=notrunc if=bin/bootloader.bin of=myfirst.flp
dd status=noxfer conv=notrunc if=bin/kernel.bin		of=myfirst.flp
-- 8 sie 2011, o 19:12 --

ODPISZCIE!!!