Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: Projekt: OS-Development  ::  Compilieren/Linken von PrettyOS  
Gehen Sie zu Seite Zurück  1, 2, 3, 4, 5
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
TheCrip
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.12.2009
Beiträge: 46
Beitrag TheCrip Mitglied 17:38:08 27.08.2010   Titel:              Zitieren

Ich habe jetzt auch mal euer Tutorial gefunden und ein bisschen rumprobiert. Sobald ich aber den ckernel einbinden will, wofür ich natürich den Linker benutzen muss, kommt immer bei ld.exe dieser Fehler:
kernel.o: file not recognized: File format not recognized

In der .bat steht das hier :
Zitat:
nasm -O32 -f bin boot.asm -o boot.bin
nasm -O32 -f aout kernel.asm -o kernel.o
gcc -c ckernel.c -o ckernel.o
ld -T kernel.ld ckernel.o kernel.o -o ckernel.bin
copy /b boot.bin + ckernel.bin MyOS.bin
pause>nul

Ich muss übrigens die gcc.exe und ld.exe aus dem Dev-C++ nehmen, da diese 64-bit kompatibel sind. Macht das einen Unterschied?
Ich habe auch die NASM Version 2.08 genommen wie MrX sagte.
mfG TheCrip


Zuletzt bearbeitet von TheCrip am 17:38:27 27.08.2010, insgesamt 1-mal bearbeitet
Erhard Henkes
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2000
Beiträge: 11885
Beitrag Erhard Henkes Mitglied 09:06:05 28.08.2010   Titel:              Zitieren

aout: da benötigst du den alten Linker aus dem DJGPP, der neue kann das nicht mehr, benötigt scharfe Trennung von 16 u. 32 Bit Code. Probiers mal mit dem DJGPP.

_________________
OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm
TheCrip
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.12.2009
Beiträge: 46
Beitrag TheCrip Mitglied 12:18:42 28.08.2010   Titel:              Zitieren

Die ist aber leider nicht 64-bit fähig, bringt mir gar nix
Erhard Henkes
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2000
Beiträge: 11885
Beitrag Erhard Henkes Mitglied 12:34:38 28.08.2010   Titel:              Zitieren

dann musst du weg von "aout" (das war schön 16+32 bit fähig) zu den Nachfolgern. Im modernen PrettyOS verwenden wir natürlich kein aout mehr.

_________________
OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm
Tobiking2
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.04.2009
Beiträge: 693
Beitrag Tobiking2 Mitglied 20:03:04 28.08.2010   Titel:              Zitieren

Wieso muss dein Compieler denn 64 Bit fähig sein, und vor allem was meinst du damit? Die 32 Bit Version kann man problemlos auf einem 64 Bit System ausführen, und es wird für das Tutorial und PrettyOS eh nur 32 Bit Code generiert.
Mr X
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.09.2007
Beiträge: 1047
Beitrag Mr X Mitglied 20:10:46 28.08.2010   Titel:              Zitieren

Ich habe nicht den Eindruck, das er versucht, PrettyOS zu kompilieren, denn dafür bräuchte er kein eigenes makefile^^
Erhard Henkes
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2000
Beiträge: 11885
Beitrag Erhard Henkes Mitglied 22:14:59 28.08.2010   Titel:              Zitieren

aout mit dem neuen Linker geht nicht mehr, wie bereits ausgeführt. ^^

_________________
OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm
TheCrip
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.12.2009
Beiträge: 46
Beitrag TheCrip Mitglied 10:10:28 29.08.2010   Titel:              Zitieren

Ja ich versuche das Tutorial zu kompilieren. Und ich habe ein 64-bit OS, deshalb klappt die ld.exe und gcc.exe vom djgpp nicht, weil das noch alte Versionen sind.
Jetzt muss ich die beiden vom dev-Cpp nehmen, diese funktionieren. Nur das die ld.exe das aout Format nicht erkennt.
Welches Format müsste ich denn da nehmen, hab schon einige versucht...


Zuletzt bearbeitet von TheCrip am 10:10:58 29.08.2010, insgesamt 1-mal bearbeitet
Erhard Henkes
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2000
Beiträge: 11885
Beitrag Erhard Henkes Mitglied 10:29:49 29.08.2010   Titel:              Zitieren

Wir haben erst später 16- und 32-Bit-Code sauber getrennt, da dies nur in aout und mit dem alten Linker möglich war. coff ist das Nachfolger-Format: http://en.wikipedia.org/wiki/COFF

Hier wurde die Abwärtskompatibilität beim ld gebrochen, wie heute beim 64-bit-OS, das die 16-bit-Anwendungen knallhart im Regen stehen lässt.

Schau dir den aktuellen Code in PrettyOS an.
http://prettyos.svn.sourceforge.net/viewvc/prettyos.tar.gz?view=tar

_________________
OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm


Zuletzt bearbeitet von Erhard Henkes am 10:32:08 29.08.2010, insgesamt 2-mal bearbeitet
Erhard Henkes
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2000
Beiträge: 11885
Beitrag Erhard Henkes Mitglied 18:53:09 27.08.2011   Titel:              Zitieren

Cuervo schrieb:
Diesers Programm funktioniert mit den aktuellen PrettyOS Versionen nicht mehr, es war nur ale Test gedacht und ist hiermit als "obsolete" und unbrauchbar markiert.

Cuervo schrieb:
So, ich stelle nochmal den aktuellen Code und eine EXE-Datei rein, Code ist in BlitzPlus geschrieben (http://www.blitzbasic.com).
Programm läuft auf EIGENE GEFAHR.

Download: LINK ENTFERNT
Dieses Archiv bitte in den Source Ordner exrtrahieren, so dass die build.exe darin liegt.

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Global win
AppTitle "Compiler"
win=CreateWindow("Kompilieren...",100,100,640,480,0,1+32)
Global e,es,ed
Global tarea=CreateTextArea(10,10,620,460,win)
SetTextAreaColor tarea,0,0,0,1
SetTextAreaColor tarea,0,255,0,0
Global font=LoadFont("Arial",30)
SetTextAreaFont tarea,font

Global d$=CurrentDir()

ChangeDir "_stage1_bootloader"
RunCommand "Build.bat"
ChangeDir d$
ChangeDir "_stage2_bootloader"
RunCommand "Build.bat"
ChangeDir d$
ChangeDir "user"
ChangeDir "user_program_c"
CopyFile d$+"_nasm\nasmw.exe","nasmw.exe"
RunCommand d$+"_mingw32-make\mingw32-make.exe --makefile=Windows_makefile"
ChangeDir d$+"user"
CopyFile "user_program_c\program.elf","init_rd_img\program.elf"
ChangeDir "init_rd_img"
RunCommand d$+"_mingw32-make\mingw32-make.exe --makefile=Windows_makefile"
ChangeDir d$
ChangeDir "kernel"
RunCommand d$+"_mingw32-make\mingw32-make.exe --makefile=Windows_makefile"
ChangeDir d$

Notify "BUILDVORGANG ABGESCHLOSSEN!",1
AddTextAreaText tarea,Chr(13)+Chr(10)+Chr(13)+Chr(10)+"FERTIG!!!"
Repeat
    e=WaitEvent()
    If e=$803 Then
        Exit
    EndIf
    es=EventSource()
    ed=EventData()
   
Forever



FreeGadget win
End

Function RunCommand(s$)
    Local p=CreateProcess(s$)
    If p=0 Then
        AddTextAreaText tarea,"BEFEHL "+s$+" nicht gefunden!"+Chr(13)+Chr(10)
        Return 0
    EndIf
   
    While Not Eof(p)
        AddTextAreaText tarea,ReadLine(p)+Chr(13)+Chr(10)
        WaitEvent(1)
    Wend
   
   
End Function
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Global win
AppTitle "Compiler"
win=CreateWindow("Kompilieren...",100,100,640,480,0,1+32)
Global e,es,ed
Global tarea=CreateTextArea(10,10,620,460,win)
SetTextAreaColor tarea,0,0,0,1
SetTextAreaColor tarea,0,255,0,0
Global font=LoadFont("Arial",30)
SetTextAreaFont tarea,font

Global d$=CurrentDir()

ChangeDir "_stage1_bootloader"
RunCommand "Build.bat"
ChangeDir d$
ChangeDir "_stage2_bootloader"
RunCommand "Build.bat"
ChangeDir d$
ChangeDir "user"
ChangeDir "user_program_c"
CopyFile d$+"_nasm\nasmw.exe","nasmw.exe"
RunCommand d$+"_mingw32-make\mingw32-make.exe --makefile=Windows_makefile"
ChangeDir d$+"user"
CopyFile "user_program_c\program.elf","init_rd_img\program.elf"
ChangeDir "init_rd_img"
RunCommand d$+"_mingw32-make\mingw32-make.exe --makefile=Windows_makefile"
ChangeDir d$
ChangeDir "kernel"
RunCommand d$+"_mingw32-make\mingw32-make.exe --makefile=Windows_makefile"
ChangeDir d$

Notify "BUILDVORGANG ABGESCHLOSSEN!",1
AddTextAreaText tarea,Chr(13)+Chr(10)+Chr(13)+Chr(10)+"FERTIG!!!"
Repeat
e=WaitEvent()
If e=$803 Then
Exit
EndIf
es=EventSource()
ed=EventData()

Forever



FreeGadget win
End

Function RunCommand(s$)
Local p=CreateProcess(s$)
If p=0 Then
AddTextAreaText tarea,"BEFEHL "+s$+" nicht gefunden!"+Chr(13)+Chr(10)
Return 0
EndIf

While Not Eof(p)
AddTextAreaText tarea,ReadLine(p)+Chr(13)+Chr(10)
WaitEvent(1)
Wend


End Function
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Global win
AppTitle "Compiler"
win=CreateWindow("Kompilieren...",100,100,640,480,0,1+32)
Global e,es,ed
Global tarea=CreateTextArea(10,10,620,460,win)
SetTextAreaColor tarea,0,0,0,1
SetTextAreaColor tarea,0,255,0,0
Global font=LoadFont("Arial",30)
SetTextAreaFont tarea,font

Global d$=CurrentDir()

ChangeDir "_stage1_bootloader"
RunCommand "Build.bat"
ChangeDir d$
ChangeDir "_stage2_bootloader"
RunCommand "Build.bat"
ChangeDir d$
ChangeDir "user"
ChangeDir "user_program_c"
CopyFile d$+"_nasm\nasmw.exe","nasmw.exe"
RunCommand d$+"_mingw32-make\mingw32-make.exe --makefile=Windows_makefile"
ChangeDir d$+"user"
CopyFile "user_program_c\program.elf","init_rd_img\program.elf"
ChangeDir "init_rd_img"
RunCommand d$+"_mingw32-make\mingw32-make.exe --makefile=Windows_makefile"
ChangeDir d$
ChangeDir "kernel"
RunCommand d$+"_mingw32-make\mingw32-make.exe --makefile=Windows_makefile"
ChangeDir d$

Notify "BUILDVORGANG ABGESCHLOSSEN!",1
AddTextAreaText tarea,Chr(13)+Chr(10)+Chr(13)+Chr(10)+"FERTIG!!!"
Repeat
    e=WaitEvent()
    If e=$803 Then
        Exit
    EndIf
    es=EventSource()
    ed=EventData()
   
Forever



FreeGadget win
End

Function RunCommand(s$)
    Local p=CreateProcess(s$)
    If p=0 Then
        AddTextAreaText tarea,"BEFEHL "+s$+" nicht gefunden!"+Chr(13)+Chr(10)
        Return 0
    EndIf
   
    While Not Eof(p)
        AddTextAreaText tarea,ReadLine(p)+Chr(13)+Chr(10)
        WaitEvent(1)
    Wend
   
   
End Function

_________________
OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm
C/C++ Forum :: Projekt: OS-Development  ::  Compilieren/Linken von PrettyOS  
Gehen Sie zu Seite Zurück  1, 2, 3, 4, 5
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.