Kompilovanie .c zdrojaku/chyba

Sekcia: Programovanie 04.12.2008 | 15:50
morfo   Návštevník
zdravim,.,. chcel by som sa spytat na takyto problem. zacinam kodit v c pod linuxom a ked dam skompilovat zdrojak tak mi vyhodi chybu: no new line at end of file..ako to vyriesim? Dik. a este ked som mal pascalovsky zdrojak tak to v pohode kompilovalo ale ked som tam hodil funkciu delete(slovo,3,3) tak vyhodilo chybu . expected but ( found v riadku kde bola ta funkcia delete...to preco?diky...verzia Ubuntu 8.10
    • Re: Kompilovanie .c zdrojaku/chyba 04.12.2008 | 17:26
      Avatar Jan Hovancik debian, win  Používateľ
      k pascalu: kopni sem cely ten riadok ako vyzera
      - peace, not war -
    • Re: Kompilovanie .c zdrojaku/chyba 05.12.2008 | 02:23
      Avatar Zefram Cochrane MS Windows Vista Ultimate 64bi  Používateľ
      Mne to funguje:
      program pokus;
      var s : string;
      begin
        s := 'Hello world';  // toto vypise 'He world'
        delete(s,3,3);
        writeln(s);  
      end.
      
    • Re: Kompilovanie .c zdrojaku/chyba 05.12.2008 | 07:30
      Avatar Jaroslav Štulajter Mandriva 2009.1  Používateľ
      no new line at end of file , jednoducho ti tam chyba novy riadok na konci zdrojaku, na samom konci zdrojaka daj este jeden enter a mas po chybe :) Je to taka konvencia, ale jej vyznam si uz nepamatam viem vsak na isto ze sa to tu uz riesilo tak skus pohladat.
    • To nie je chyba to je varovanie 05.12.2008 | 11:59
      peto   Návštevník
      a teda kompilator prelozil uspesne tvoj C kod.

      Jedine co mu vadi je, ze slusny programator v C da za poslednou zatvorku znak novy riadok teda stalci enter..
      • Re: To nie je chyba to je varovanie 06.12.2008 | 13:49
        morfo   Návštevník
        sorac ze az teraz ale nebolo casu.. Takze, nejde mi ani jedno ani druhe. V C dam za poslednou zatvorkou enter (aj dva aj tri) a stale to iste. A v pascale mi to stale tiez pise ked tam mam tu funkciu delete. Zdrojak mam taky isty ako ten vyssie...smoola. Tu su chyby:




        $ fpc 386 delete_ja.pas
        mato@mato-laptop:~$ fpc 386 delete_ja.pas
        Warning: Only one source file supported
        Free Pascal Compiler version 2.2.0 [2007/08/31] for i386
        Copyright (c) 1993-2007 by Florian Klaempfl
        Target OS: Linux for i386
        Compiling delete_ja.pas
        delete_ja.pas(6,7) Fatal: Syntax error, "." expected but "(" found
        Fatal: Compilation aborted
        Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)
        mato@mato-laptop:~$


        a v C:
        mato@mato-laptop:~$ gcc program.c
        program.c:13:5: warning: no newline at end of file
        mato@mato-laptop:~$

        • Re: To nie je chyba to je varovanie 06.12.2008 | 14:30
          WlaSaTy   Návštevník
          :delete_ja.pas(6,7) Fatal: Syntax error, "." expected but "(" found
          co mas prosim ta na risdku 6, syntakticku chybu braniacu prekladu?


          :program.c:13:5: warning: no newline at end of file
          ten novy riadok na koniec suboru nedas aj ked ti to bolo povedane, ale na tom nezalezi. standardny nazov vysledneho programu (ak ho nedefinujes pomocou parametra -o) je a.out.
          takze to spusti prikazom ./a.out
          • Re: To nie je chyba to je varovanie 06.12.2008 | 15:19
            morfo   Návštevník
            diky, to C uz funguje.... pascal mi nejde...zdrojak mam taky isty ako je hore napisany...proste tam mi nechce zhltnut tu funkciu delete.
            • Re: To nie je chyba to je varovanie 06.12.2008 | 15:22
              WlaSaTy   Návštevník
              no a z akeho stringu odmazavas znaky?
        • Re: To nie je chyba to je varovanie 06.12.2008 | 15:36
          Avatar Zefram Cochrane MS Windows Vista Ultimate 64bi  Používateľ
          naco tam pleties to 386, daj len fpc:
          $ cat delete_ja.pas 
          program pokus;
          var s : string;
          begin
            s := 'Hello world';
            delete(s,3,3);
            writeln(s);  
          end.
          $ fpc delete_ja.pas
          Free Pascal Compiler version 2.2.0 [2008/04/01] for i386
          Copyright (c) 1993-2007 by Florian Klaempfl
          Target OS: Linux for i386
          Compiling delete_ja.pas
          Linking delete_ja
          7 lines compiled, 0.4 sec
          $ ./delete_ja 
          He world
          
          • Re: To nie je chyba to je varovanie 06.12.2008 | 15:39
            Avatar Zefram Cochrane MS Windows Vista Ultimate 64bi  Používateľ
            Ak ako hovoris ti hlasi: delete_ja.pas(6,7) tak klames lebo na riadku 6 na 7 znaku je 'e' z writeln takze ocividne pouzivas nejaky iny zdrojak. Aky?
            • Re: To nie je chyba to je varovanie 06.12.2008 | 16:04
              morfo   Návštevník
              neboj neklamem je to ten zdrojak...tu je chyba:
              mato@mato-laptop:~$ fpc delete_ja.pas
              Free Pascal Compiler version 2.2.0 [2007/08/31] for i386
              Copyright (c) 1993-2007 by Florian Klaempfl
              Target OS: Linux for i386
              Compiling delete_ja.pas
              delete_ja.pas(6,7) Fatal: Syntax error, "." expected but "(" found
              Fatal: Compilation aborted
              Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)
              mato@mato-laptop:~$

              proste on hlasi ze mala byt . a je tam ( .
              • Re: To nie je chyba to je varovanie 06.12.2008 | 16:06
                morfo   Návštevník
                a este...line 6 znak 7 nieje e ale ( ...
                • Re: To nie je chyba to je varovanie 06.12.2008 | 16:08
                  morfo   Návštevník
                  ja mam totiz o jeden riadok viac.. nemam var slovo: string; v jednom riadku ale mam to
                  ...
                  var
                  slovo: string;
                  ...
                  • Re: To nie je chyba to je varovanie 06.12.2008 | 16:23
                    WlaSaTy   Návštevník
                    pri opisovani si zabudol dat jeden parameter pre funkciu delete.

                    pocet riadkov ma dosah iba na chybovost, takze skus nejaky programatorsky nastroj. Myslim ze pre gnu pascal je uplne idealny RHIde, dost sa ponasa na turbo pascal. skus, a uvidis.
                  • Re: To nie je chyba to je varovanie 06.12.2008 | 16:25
                    morfo   Návštevník
                    tu to mas cele..akurat som si vsimol ze mas novsiu verziu kompilatora.(teda aspon datumy sa lisia) inak, nechapem preco to nejde...

                    mato@mato-laptop:~$ cat delete_ja.pas
                    program delete;
                    var slovo: string;
                    begin
                    slovo:= 'hello world';
                    delete(slovo,2,2);
                    writeln(slovo);
                    end.

                    mato@mato-laptop:~$ fpc delete_ja.pas
                    Free Pascal Compiler version 2.2.0 [2007/08/31] for i386
                    Copyright (c) 1993-2007 by Florian Klaempfl
                    Target OS: Linux for i386
                    Compiling delete_ja.pas
                    delete_ja.pas(5,7) Fatal: Syntax error, "." expected but "(" found
                    Fatal: Compilation aborted
                    Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)
                    mato@mato-laptop:~$
                    • Re: To nie je chyba to je varovanie 06.12.2008 | 16:43
                      Avatar Zefram Cochrane MS Windows Vista Ultimate 64bi  Používateľ
                      lebo ty si mofo, program sa ti vola delete!
                      mal som pravdu - mas iny program
                      program je ako unit, ked maz "unit xyz;", mozes jej fcie volat xyz.fcia
                      preto sa ta pri delete pyta na funkciu z unit (programu) delete lenze ty tam ziadnu nemas, zmen prvy riadok na

                      program delete_ja;

                      a pojde to
                      • Re: To nie je chyba to je varovanie 06.12.2008 | 16:54
                        morfo   Návštevník
                        sakra aka skolacka chyba..neva...nevsimol som si ze som ho nazval delete...diky moc ...
                        • Re: To nie je chyba to je varovanie 06.12.2008 | 16:58
                          morfo   Návštevník
                          inac aj ked som dal do 1.riadku program delete_ja; tak aj tak to potom pisalo chybu. musel som tam dat I (napr) I:
                          program pokus;
                          potom to slo...dik..
                          este by som poprosil nejaku stranku kde by som sa dozvedel viac o moznostiach a rozdieloch pri kompilovani c a pas. ako je to preco fpc a fpc 386, alebo ppc 386 a tak..dikes
                        • Re: To nie je chyba to je varovanie 06.12.2008 | 16:58
                          morfo   Návštevník
                          inac aj ked som dal do 1.riadku program delete_ja; tak aj tak to potom pisalo chybu. musel som tam dat I (napr) I:
                          program pokus;
                          potom to slo...dik..
                          este by som poprosil nejaku stranku kde by som sa dozvedel viac o moznostiach a rozdieloch pri kompilovani c a pas. ako je to preco fpc a fpc 386, alebo ppc 386 a tak..dikes