Forum: kompilerings fel som jag inte fattar och hur man läser iso filer i c++

Forum huvudsida -> Programmering -> kompilerings fel som jag inte fattar och hur man läser iso filer i c++

Sidor: 1

Till botten

jockepockee 19:38 - 7:e Oktober 2007 | Post #1
Medlem
Inlägg: 192


Skicka PM
Tja, jag hålle på och gör en emulator till en architektur som jag kallar för Xlot, och nu har jag fastnat på bios delen

jag får nämligen en massa felmeddelanden som 9nte alls gör mig klokareSmiley

nämligen:

bios.h:18: error: EUR~stringEUR(TM) does not name a type
bios.cc:9: error: expected unqualified-id before EUR~usingEUR(TM)
bios.cc: In function EUR~void init_devices()EUR(TM):
bios.cc:16: error: EUR~ifstreamEUR(TM) was not declared in this scope
bios.cc:16: error: expected `;'' before EUR~bios_cfgEUR(TM)
bios.cc:18: error: EUR~bios_cfgEUR(TM) was not declared in this scope
bios.cc:19: error: EUR~stringEUR(TM) was not declared in this scope
bios.cc:19: error: expected `;'' before EUR~lineEUR(TM)
bios.cc:22: error: EUR~lineEUR(TM) was not declared in this scope
bios.cc:25: error: expected `;'' before EUR~deviceEUR(TM)
bios.cc:28: error: expected primary-expression before EUR~[EUR(TM) token
bios.cc:35: error: expected `;'' before EUR~pathEUR(TM)
bios.cc:36: error: expected `;'' before EUR~boot_priorityEUR(TM)
bios.cc:38: error: expected primary-expression before EUR~==EUR(TM) token
bios.cc:42: error: EUR~pathEUR(TM) was not declared in this scope
bios.cc:44: error: expected `;'' before EUR~posEUR(TM)
bios.cc:53: error: EUR~boot_priorityEUR(TM) was not declared in this scope
bios.cc:59: error: EUR~struct deviceEUR(TM) has no member named EUR~pathEUR(TM)
bios.cc:59: error: EUR~pathEUR(TM) was not declared in this scope
bios.cc:60: error: EUR~struct deviceEUR(TM) has no member named EUR~boot_priorityEUR(TM)
bios.cc:60: error: EUR~boot_priorityEUR(TM) was not declared in this scope

bios.cc:

  1. /*
  2. * Filnamn: bios.cc
  3. * Skapad av: JockePockee
  4. * E-post: ***
  5. */
  6.  
  7. #include "bios.h"
  8.  
  9. using namespace std;
  10.  
  11. device hdd_1;
  12. device cdrom;
  13. device floppy;
  14.  
  15. void init_devices() {
  16. ifstream bios_cfg("bios.cfg");
  17.  
  18. for (int i = 0; bios_cfg.eof(); i++) {
  19. string line;
  20. int pos = 0;
  21.  
  22. getline(bios_cfg, line);
  23.  
  24. while (line[pos] != '';'') {
  25. string device;
  26.  
  27. while (line[pos] != '' '') {
  28. line[pos] = device[pos];
  29.  
  30. pos++;
  31. }
  32.  
  33. int tmp_pos = 0;
  34.  
  35. string path;
  36. string boot_priority;
  37.  
  38. if (device == "hdd_1") {
  39. pos++;
  40.  
  41. while (line[pos] != '','') {
  42. path[tmp_pos] = line[pos]
  43.  
  44. pos++;
  45. tmp_pos++;
  46. }
  47.  
  48. pos++;
  49.  
  50. tmp_pos = 0;
  51.  
  52. while (line[pos] != '';'') {
  53. boot_priority[tmp_pos] = line[pos];
  54.  
  55. pos++;
  56. tmp_pos++;
  57. }
  58.  
  59. hdd_1.path = path;
  60. hdd_1.boot_priority = boot_priority;
  61. }
  62. }
  63. }
  64. }


och bios.h:

  1. /*
  2. * Filnamn: bios.h
  3. * Skapad av: JockePockee
  4. * E-post: ***
  5. */
  6.  
  7. #ifndef BIOS_H
  8. #define BIOS_H
  9.  
  10. #include <iostream>
  11. #include <string>
  12. #include <fstream>
  13.  
  14. void startup_system();
  15. void init_devices();
  16.  
  17. struct device {
  18. string path, boot_priority;
  19. }
  20.  
  21. #endif


så jag undrar om ni skulle kunna hjälpa mig och få koden att fungera?

jo och en sak till, hur ska man bära sig åt för att kunna läsa iso-filer? skulle vara bra att lagra system filer för XlotOS i sånna och samma med cdrom enheter och floppy.

Tacksam för snabba svarSmiley

/JockePockee

-------------------------



Senast redigerad 12:14 - 8:e Oktober 2007


ozamosi 19:53 - 7:e Oktober 2007 | Post #2
Administratör
Inlägg: 1129


Skicka PM
Du använder using namespace std; i bios.cc, men inte i bios.h, som använder en string som ju ligger i namespacet std i string. Alltså behöver du antingen flytta ditt using namespace, eller skriva std:string istället för string i bios.h.

-------------------------
Ljusblå



Lajnold 19:58 - 7:e Oktober 2007 | Post #3
Medlem
Inlägg: 65


Skicka PM
I bios.h visar du inte att string ligger i std-namnrymden. Då definationen av struct device vid inkludering kommer att ligga innan using namespace std så vet inte kompilatorn var den kan hitta string.

Sedan har du inget semikolon efter definationen av device.

Jag har inte testat om det stämmer, men är de fel jag såg.

-------------------------
Ingen signatur!



jockepockee 20:00 - 7:e Oktober 2007 | Post #4
Medlem
Inlägg: 192


Skicka PM
tackar, en sak bara, beror detta på att de inte fins någon main-funktion i koden?

/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crt1.o: In function `_start'':
(.text+0x18): undefined reference to `main''
collect2: ld returned 1 exit status


-------------------------



Senast redigerad 20:07 - 7:e Oktober 2007


Slash 21:11 - 7:e Oktober 2007 | Post #5
Medlem
Inlägg: 141


Skicka PM
    Citat av jockepockee:
tackar, en sak bara, beror detta på att de inte fins någon main-funktion i koden?

/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crt1.o: In function `_start'':
(.text+0x18): undefined reference to `main''
collect2: ld returned 1 exit status


Ja om du ska länka ihop det till en körbar måste du ha någon typ av ingångspunkt (i det här fallet en main() då).

PS. Om jag vore du skulle jag redigera bort email-adressen innan du hamnar i spam-listorSmiley.

-------------------------
Ingen sigantur!



Sidor: 1

Forum huvudsida -> Programmering -> kompilerings fel som jag inte fattar och hur man läser iso filer i c++
Atom feed

Du får inte posta i den här tråden | Till toppen