Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: sincope evaluator ...  (Citit de 6763 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
eneamtiu
Strain


Karma: 3
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« : Decembrie 07, 2004, 13:48:03 »

Exista vre-un motiv (lamuritor) pe care nu-l stim noi pentru a explica intreruperile astea in functionarea evaluatorului?

Nu mai merge de trei zile ...  Sad

Parca era vorba ca-i "online 24/24"  Tongue

Nu e o critica, e o intrebare (vreau doar sa stiu ce se intampla).

Numai bine,
Eugen Neamtiu.
Memorat
wickedman
Echipa infoarena
Nu mai tace
*****

Karma: 227
Deconectat Deconectat

Mesaje: 670



Vezi Profilul WWW
« Răspunde #1 : Decembrie 07, 2004, 17:15:00 »

am mai zis la un moment dat pe forum:

evaluatorul si-a schimbat locatia (fizica) si implicit adresa IP de la care functiona. lucrul asta are mai multe implicatii in conditiile oferite de webhost. una din ele e ca mai dureaza (sper ca foarte) putin pana intra "online".
Memorat
eneamtiu
Strain


Karma: 3
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« Răspunde #2 : Decembrie 08, 2004, 17:40:54 »

jobID 17956 utilizator eneamtiu
concurs Arhiva de probleme
problema Datorii
compilator Gnu C timp 2004-12-08 17:22:36

raport evaluator

/tmp/ccITCJlr.o(.text+0x58): In function `main':
: undefined reference to `sqrt'
collect2: ld returned 1 exit status

 Question

Am primit mesajul de mai sus pentru sursa:

//test
#include <math.h>
#include <stdio.h>

int main(void)
{
   freopen("datorii.out","w",stdout);

   printf("%f",sqrt(20));

   return 0;
}

Pe sistemul meu, copilata cu gcc 3.3.1 (Dev-C++), nu are nici o problema.

Noah ... se pare ca nu e disponibil math.h ... sau e vreo greseala pe care nu o vad eu?

Numai bine,
Eugen Neamtiu.
Memorat
wickedman
Echipa infoarena
Nu mai tace
*****

Karma: 227
Deconectat Deconectat

Mesaje: 670



Vezi Profilul WWW
« Răspunde #3 : Decembrie 08, 2004, 21:29:14 »

Citat din mesajul lui: eneamtiu

Pe sistemul meu, copilata cu gcc 3.3.1 (Dev-C++), nu are nici o problema.


sqrt() nu exista in GCC ANSI (chiar daca in documentatia de DJGPP zice altceva).

foloseste C++ si iti va compila.

apropos de asta... la ONI vei intampina aceleasi probleme. daca ai nevoie de sqrt(), baga sursa in C++.
am aflat asta pe pielea mea.  Very Happy
Memorat
eneamtiu
Strain


Karma: 3
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« Răspunde #4 : Decembrie 09, 2004, 19:34:05 »

Hmm.

Deci daca folosesc C (ma rog, the "ANSI/ISO C standard") nu mai am acces la nici o functie matematica din math.h (?!?).

E absurd. Mai ales daca se intampla si la ONI - cum spune wickedman. Cred ca ar trebui relaxate putin optiunile de compilare.

Si daca tot vorbim de ele mi-ar place sa le faceti publice undeva (eventual la "Regulament") ca sa ne putem "regla" compilatoarele sa se comporte la fel ca al vostru (vorbesc de optiunile de compilare folosite de evaluator pentru toate cele trei compilatoare).

Mai multe informatii despre acest subiect (si o eventuala rezolvare) am gasit aici.
Memorat
wickedman
Echipa infoarena
Nu mai tace
*****

Karma: 227
Deconectat Deconectat

Mesaje: 670



Vezi Profilul WWW
« Răspunde #5 : Decembrie 10, 2004, 00:53:02 »

Citat din mesajul lui: eneamtiu

Deci daca folosesc C (ma rog, the "ANSI/ISO C standard") nu mai am acces la nici o functie matematica din math.h (?!?).


nu pot sa o fac pe desteptu` zicand ca ma pricep la standarde in C dar iti pot spune sa folosesti CPP daca vrei sqrt (despre celelalte functii din math.h nu stiu).

am patit`o la ONI si, dupa cum vezi, se intampla si aici.
indiferent de explicatie, nu merita riscul in concurs!  Very Happy

sursele C se compileaza asa:
Citat
gcc -lm -Wall --static -o <sursa> <sursa>.<extensie>


btw... in anumite cazuri poti evita folosirea functiei sqrt().
de exemplu, atunci cand cauti divizori primi pentru un numar

Citat
for (d = 2; N >= d * d; ...


sau atunci cand compari doua distante.
Memorat
eneamtiu
Strain


Karma: 3
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« Răspunde #6 : Decembrie 10, 2004, 01:22:33 »

[ăsta e ultimu post pe această temă - promit!  Smile ]

Ceva nu este în regulă ...

Dacă ce scrie aci e corect:
Citat

The problem is that the reference to the sqrt function cannot be resolved without the external math library 'libm.a'. The function sqrt is not defined in the program or the default library 'libc.a', and the compiler does not link to the file 'libm.a' unless it is explicitly selected.  [...]

To enable the compiler to link the sqrt function to the main program 'calc.c' we need to supply the library 'libm.a'. One obvious but cumbersome way to do this is to specify it explicitly on the command line:

$ gcc -Wall calc.c /usr/lib/libm.a -o calc

The library 'libm.a' contains object files for all the mathematical functions, such as sin, cos, exp, log and sqrt.  [...]

To avoid the need to specify long paths on the command line, the compiler provides a short-cut option '-l' for linking against libraries. For example, the following command,

$ gcc -Wall calc.c -lm -o calc

is equivalent to the original command above using the full library name '/usr/lib/libm.a'.

Textul complet e la www.network-theory.co.uk/...

şi dacă ce zici tu e tot corect:
Citat
gcc -lm -Wall --static -o <sursa> <sursa>.<extensie>


atunci opţiunea "-lm" ar trebui să aibă ca efect tocmai legarea bibliotecii matematice şi deci oferirea posibilităţii de a folosi orice funcţie matematică - inclusiv sqrt.

La ONI , teoretic vorbind, ai acces la compilator şi poţi să incluzi manual opţiunea respectivă dacă nu este.

luuung post, ştiu, da' asta e ... Smile

Numai bine,
Eugen Neamţiu.
Memorat
eneamtiu
Strain


Karma: 3
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« Răspunde #7 : Decembrie 10, 2004, 02:07:14 »

[ştiu, am promis - dar cred că asta e rezolvarea la problemă:]

Citat
The ordering of libraries on the command line follows the same convection as for object files: they are searched from left to right--a library containing the definition of a function should appear after any source files or object files which use it. This includes libraries specified with the short-cut -l option, as shown in the following command:

$ gcc -Wall calc.c -lm -o calc   (correct order)


Deci ar trebui să puneţi "-lm" după numele fişierului sursă.

Numai bine,
Eugen Neamţiu.
Memorat
wickedman
Echipa infoarena
Nu mai tace
*****

Karma: 227
Deconectat Deconectat

Mesaje: 670



Vezi Profilul WWW
« Răspunde #8 : Decembrie 10, 2004, 11:07:50 »

Citat din mesajul lui: eneamtiu

Deci ar trebui să puneţi "-lm" după numele fişierului sursă.


Am facut niste teste si ai perfecta dreptate.
"Descoperirea" ta este cu atat mai interesanta cu cat la ONI 2003, 2004 si .campion s-a procedat la fel de gresit cu parametrul "-lm".

http://www.liis.ro/~campion/rules.php
cache google cu ONI 2003
http://olimpiada.info/oni2004/info/info.htm

Din cate stiu, la ONI`04 nu poti da batch-uri pentru compilare. Si asta cred ca reiese si din regulament. Trebuie sa te descurci doar cu #pragma-uri, insa acestea au o functionalitate redusa (ex. BC -mh).

Am schimbat parametrii de compilare:
Cod:
Gnu C   gcc -O2 -Wall -static -o %name% %name%%ext% -lm
Gnu C++ g++ -O2 -Wall -static -o %name% %name%%ext% -lm
FreePascal fpc -O2 -Xs %name%%ext%

Sper sa fie bine acum.

Morala: daca vreti sa nu aveti surprize, contactati organizatorii de la .campion / ONI / samd. si explicati-le problema. Altfel, folositi C++.
Memorat
sarabogdan
Strain
*

Karma: 4
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #9 : Martie 21, 2005, 10:19:00 »

Imi spuneti va rog de la ce e eroarea asta ?

Cod:

/usr/lib/gcc-lib/i486-linux/3.3.5/../../../crt1.o(.text+0x18): In function `_start':
../sysdeps/i386/elf/start.S:98: undefined reference to `main'
collect2: ld returned 1 exit status

Memorat
alexjj
Vizitator
« Răspunde #10 : Martie 21, 2005, 10:30:34 »

si mie mia dat aceeasi eroare. am specificat compilatorul (adica nu auto) si a mers.
Memorat
sarabogdan
Strain
*

Karma: 4
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #11 : Martie 21, 2005, 10:32:48 »

Cod:

si mie mia dat aceeasi eroare. am specificat compilatorul (adica nu auto) si a mers.

Am mai trimis o data acceasi sursa si a mers.
Ciudat
Memorat
Dark_Raxvan
Strain


Karma: -14
Deconectat Deconectat

Mesaje: 13



Vezi Profilul
« Răspunde #12 : Mai 19, 2005, 20:10:52 »

Evaluatorul de pe infoarena de ce nu suporta clase de obiecte?
Memorat
VladS
Vizitator
« Răspunde #13 : Mai 21, 2005, 19:11:00 »

Suporta clase, numai ca nu stii tu sa scrii.
Apropo: compileaza sub c++ (ca C nu suporta POO)
Memorat
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« Răspunde #14 : Mai 22, 2005, 14:25:01 »

Vedeti ca a cazut evaluatorul din nou
Memorat
HeLLHeiM
Strain


Karma: -3
Deconectat Deconectat

Mesaje: 15



Vezi Profilul WWW
« Răspunde #15 : Iunie 22, 2005, 22:11:47 »

si iar... numa ca de data asta ma gandesc ca e ceva mai serios (nu mai merge de 4 zile).
Memorat

Computer programming is an artform that fights back.
wickedman
Echipa infoarena
Nu mai tace
*****

Karma: 227
Deconectat Deconectat

Mesaje: 670



Vezi Profilul WWW
« Răspunde #16 : Iunie 22, 2005, 23:01:43 »

va trebui să mai avem puţină răbdare ...
... până se întoarce lotul
Memorat
vladcyb1
Vorbaret
****

Karma: 33
Deconectat Deconectat

Mesaje: 166



Vezi Profilul
« Răspunde #17 : August 26, 2005, 15:20:21 »

Iar a cazut evaluatorul. Ce tot are?  Sad
Memorat

Vlad Berteanu
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines