Kompilacja pliku *.cpp do *.bin

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
norbus2000a
Piegowaty Guziec
Piegowaty Guziec
Posty: 17
Rejestracja: 06 sie 2011, 21:26
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64

Kompilacja pliku *.cpp do *.bin

Post autor: norbus2000a »

Jak skompilować plik *.cpp do *.bin?
Szukałem w Google i nic :!:
Proszę, pomóżcie!!
Pozdro :!:
Awatar użytkownika
mario_7
Administrator
Administrator
Posty: 8656
Rejestracja: 30 sie 2006, 13:11
Płeć: Mężczyzna
Wersja Ubuntu: 20.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: Kompilacja pliku *.cpp do *.bin

Post autor: mario_7 »

Co masz na myśli pisząc o pliku .bin?
Awatar użytkownika
norbus2000a
Piegowaty Guziec
Piegowaty Guziec
Posty: 17
Rejestracja: 06 sie 2011, 21:26
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64

Re: Kompilacja pliku *.cpp do *.bin

Post autor: norbus2000a »

Plik binarny.
Pozdro :!:
Awatar użytkownika
kabanek
Zakręcona Traszka
Zakręcona Traszka
Posty: 592
Rejestracja: 23 cze 2009, 20:34
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Re: Kompilacja pliku *.cpp do *.bin

Post autor: kabanek »

no to nic prostszego :) wystarczy kompilować program i zmienić nazwę dodając na końcu .bin
Awatar użytkownika
norbus2000a
Piegowaty Guziec
Piegowaty Guziec
Posty: 17
Rejestracja: 06 sie 2011, 21:26
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64

Re: Kompilacja pliku *.cpp do *.bin

Post 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:
Pozdro :!:
Awatar użytkownika
mario_7
Administrator
Administrator
Posty: 8656
Rejestracja: 30 sie 2006, 13:11
Płeć: Mężczyzna
Wersja Ubuntu: 20.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: Kompilacja pliku *.cpp do *.bin

Post 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
Awatar użytkownika
norbus2000a
Piegowaty Guziec
Piegowaty Guziec
Posty: 17
Rejestracja: 06 sie 2011, 21:26
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64

Re: Kompilacja pliku *.cpp do *.bin

Post 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!!!
Pozdro :!:
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 8 gości