[C] syntax error expected â)â before string constant

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Ierlandfan
  • Registratie: Augustus 2002
  • Laatst online: 11-07 00:21
ik probeer onderstaande code uit 2004 te compilen. Ik loop vast op deze ene functie:

code:
1
2
3
int sim_read_special(uint32 addr, uint32 len, uint8* buffer) {
        uint32 a7 = addr & (~0xe0000000);
        DEBUG("address %08x, %d bytes\n", addr, len);


Error: 3. expected â)â before string constant

Debug is een bepaalde printf functie, is (denk ik) niet van belang.
Als ik line 3 //, dan compiled het programma prima.


(Voor de geinteresseerden, de code is een deel van een dreamcast emulator (dreamice) die ik wil gebruiken om een ander sh4 apparaat te emuleren. Ik kan alleen deze gebruiken aangezien ik van dit programma weet dat het met het specifiek apparaat heeft gewerkt)

Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Ierlandfan schreef op zaterdag 20 april 2013 @ 20:41:
code:
1
2
3
int sim_read_special(uint32 addr, uint32 len, uint8* buffer) {
        uint32 a7 = addr & (~0xe0000000);
        DEBUG("address %08x, %d bytes\n", addr, len);


Error: 3. expected â)â before string constant

Debug is een bepaalde printf functie, is (denk ik) niet van belang.


(Voor de geinteresseerden, de code is een deel van een dreamcast emulator (dreamice) die ik wil gebruiken om een ander sh4 apparaat te emuleren. Ik kan alleen deze gebruiken aangezien ik van dit programma weet dat het met het specifiek apparaat heeft gewerkt)
Is DEBUG een functie of een macro? Dat het in hoofdletters is suggereert het laatste. Bekijk eens hoe de precompiled source er uitziet (i.a.w als de macro DEBUG geëxpandeerd is) - cpp <file.c>?


EDIT: Source zelf even opgezocht.
code:
1
2
3
4
5
valhallasw@lisilwen:~/src/dreamice/dreamice-1.0$ cpp ./sh4sim/sh4sim.c | less
(...)
int sim_read_special(uint32 addr, uint32 len, uint8* buffer) {
 uint32 a7 = addr & (~0xe0000000);
 msgswnd_printf(__FUNCTION__ ": " "address %08x, %d bytes\n", addr, len);


Je probleem is waarschijnlijk dat __FUNCTION__ een non-standard (microsoft-)toevoeging is. Met VC++ compilen werkt dus wellicht wel. Je kunt ook in sh4sim.h de andere #DEFINE van DEBUG uitcommenten.

[ Voor 21% gewijzigd door ValHallASW op 20-04-2013 20:51 ]


Acties:
  • 0 Henk 'm!

  • Ierlandfan
  • Registratie: Augustus 2002
  • Laatst online: 11-07 00:21
Weer wat geleerd over hoe je cpp moet gebruiken. Handig. Mijn compiler skills zijn nogal ondermaats.
Je kunt ook in sh4sim.h de andere #DEFINE van DEBUG uitcommenten.
Dat heb ik inmiddels geprobeerd en dan compiled sh4sim wel. Helaas in de directory ice klaag gcc dan over heel veel undefined references naar DEBUG en geeft op.

Ik ga nog even vc++ proberen.

[ Voor 146% gewijzigd door Ierlandfan op 20-04-2013 21:45 ]


Acties:
  • 0 Henk 'm!

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

of je vervangt __FUNCTION__ door __function__ wat wel op gcc zou moeten werken.

en, tenzij in het project zelf gedefinieerd, msgsnwd_printf door gewoon printf

[ Voor 34% gewijzigd door H!GHGuY op 21-04-2013 08:42 ]

ASSUME makes an ASS out of U and ME


Acties:
  • 0 Henk 'm!

  • Ierlandfan
  • Registratie: Augustus 2002
  • Laatst online: 11-07 00:21
code:
1
2
3
4
5
/* A spiffy debug macro */
//#define DEBUG(FMT, args...) printf(__FUNCTION__ ": " FMT, args)
//void msgswnd_printf(char *fmt,...);
//#define DEBUG(FMT, args...) msgswnd_printf(__FUNCTION__ ": " FMT, args)
#define DEBUG(args...)


Dit is wat er staat..de // zijn door mij toegevoegd