Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Blog Ubuntu -- Správa "projektů" české komunity Ubuntu

Novinky: Školení nejen k OS Ubuntu pro širokou veřejnost, více informací zde.

Autor Téma: Pomoc s compilaciou  (Přečteno 587 krát)

jamesbond

  • Návštěvník
  • *
  • Příspěvků: 87
  • Karma: +7/-2
    • Zobrazit profil
Pomoc s compilaciou
« kdy: 02 Květen 2011, 09:08:33 »
ahoj,
nie som C profesionál a preto sa možno zbytočne na nejakej hlúposti stále potkýňam. Mám potvrdené, vraj to je kompilovateľné na NetBSD. Skúsil by niekto skompilovat tento praveký C compiler ? (je tam aj TAR na stiahnutie všetkého)
http://www.gtoal.com/compilers101/small_c/small-c/
Mne to nejde, vypisuje mi:

io.c:91: error: expected identifier or ‘(’ before ‘)’ token
io.c: In function ‘inchar’:
io.c:140: error: expected expression before ‘inline’
make: *** [io.o] Error 1

Skúšam to na Ubuntu 10.10, 64bit

jamesbond

  • Návštěvník
  • *
  • Příspěvků: 87
  • Karma: +7/-2
    • Zobrazit profil
Re: Pomoc s compilaciou
« Odpověď #1 kdy: 02 Květen 2011, 09:43:47 »
Podľa mňa mu vadí kľúčové slovo "inline" použité ako názov metódy. Ale dnes mi jeden ochotný čovek potvrdil, vraj to funguje. Dokonca to aj vypľulo nejaký i8080 assembler. Tu je citát:
Citace
Hmm. I have lying around something called "Small C Compiler v C3.0R1.1"
by Chris Lewis that includes an 8080 flavor. I've just built in on my
NetBSD box, so I know it goes through GCC.

Here's a pointer to the software that still works:
http://www.gtoal.com/compilers101/small_c/small-c/

Compiling this C code:

main()
{
  return 1;

}

yields this assembly:

;       Small C 8080;
;       Coder (2.4,84/11/27)
;       Front End (2.7,84/11/28)
        extrn   ?gchar,?gint,?pchar,?pint,?bool
        extrn   ?sxt
        extrn   ?or,?and,?xor
        extrn   ?eq,?ne,?gt,?le,?ge,?lt,?uge,?ult,?ugt,?ule
        extrn   ?asr,?asl
        extrn   ?sub,?neg,?com,?lneg,?mul,?div
        extrn   ?case
        cseg
main:
        lxi     h,1
        jmp     ?1
?1:
        ret
        dseg
        extrn   etext
        extrn   edata
        public  main

Prosím o pomoc :-)