Prijava
Korisničko ime:

Lozinka:

remember me

Zaboravili lozinku?

Registrirajte se!
Glavni menu
Potraga
Tko je online
15 korisnika je online (11 korisnika cita Diskusije)

članovi: 0
Gosti: 15

više...
HULK-Diskusije - Programiranje - C++ compile error
Chat WIKI Kontakt
HULK Forum Index
   Programiranje
  C++ compile error

Pregledavanje ovog Threada:   1 Anonimnih Korisnika

 

 Dno   Prethodna tema   Sljedeca tema
  •  Ocjena Threada
      Ocijenite ovaj Thread
      Izvrsno
      Dobro
      Prosjecno
      Loše
      Užasno
Pošiljatelj Thread
  •  dakdak
      dakdak
C++ compile error
#1
Upravo došao
Pridružen: 17.06.2005
Od
Poruke: 18
Level : 2
HP : 0 / 49
MP : 6 / 2720
EXP : 97
Grupa:
Registered Users
Offline
Instalirao sam OpenSuse 11.0 na novom desktop PC ( do sada sam na starom PC-u imao Suse 9.1).

Moj primarni interes je koristenje programa za Monte Carlo numericke simulacije. Taj programski paket se sastoji od default dijela sa Fortranskim source-vima, a nedavno je nadodan modul sa C++ sourcevima ( s namjenom vizualizacije geometrije razmatranog problema).

Prije instalacije samog MC programa, na sistem sam instalirao gcc (v. 4.3.1 20080507) te posebno g77 kompajler (paket compat-g77-3.3.5-42.1.i586.rpm), jer ga u verzijama gcc-a v4.x vise nema.

Instalacija MC programa prosla je OK, a i testni Fortranski source-vi se kompajliraju i izvode u redu.

Nakon toga sam prema uputama htio napraviti ono sto se zove "build the C++ class library", tako da iz danog direktorija zadam naredbu 'make'. Medjutim ovaj postupak se prekida sa slijedecom greskom:

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

darko@linux-shi1:~/mc/egs++> make
Creating directory dso
Creating directory dso/i686-pc-linux-gnu-g77
g++ -I../lib/i686-pc-linux-gnu-g77 -fPIC -DBUILD_DLL -O3 -c -o dso/i686-pc-linux-gnu-g77/egs_input.o egs_input.cpp
g++ -I../lib/i686-pc-linux-gnu-g77 -fPIC -DBUILD_DLL -O3 -c -o dso/i686-pc-linux-gnu-g77/egs_base_geometry.o egs_base_geometry.cpp
g++ -I../lib/i686-pc-linux-gnu-g77 -fPIC -DBUILD_DLL -O3 -c -o dso/i686-pc-linux-gnu-g77/egs_library.o egs_library.cpp
egs_library.cpp:103: warning: deprecated conversion from string constant to ‘char*’
egs_library.cpp:104: warning: deprecated conversion from string constant to ‘char*’
g++ -I../lib/i686-pc-linux-gnu-g77 -fPIC -DBUILD_DLL -O3 -c -o dso/i686-pc-linux-gnu-g77/egs_transformations.o egs_transformations.cpp
g++ -I../lib/i686-pc-linux-gnu-g77 -fPIC -DBUILD_DLL -O3 -c -o dso/i686-pc-linux-gnu-g77/egs_rndm.o egs_rndm.cpp
g++ -I../lib/i686-pc-linux-gnu-g77 -fPIC -DBUILD_DLL -O3 -c -o dso/i686-pc-linux-gnu-g77/egs_shapes.o egs_shapes.cpp
g++ -I../lib/i686-pc-linux-gnu-g77 -fPIC -DBUILD_DLL -O3 -c -o dso/i686-pc-linux-gnu-g77/egs_geometry_tester.o egs_geometry_tester.cpp
g++ -I../lib/i686-pc-linux-gnu-g77 -fPIC -DBUILD_DLL -O3 -c -o dso/i686-pc-linux-gnu-g77/egs_timer.o egs_timer.cpp
g++ -I../lib/i686-pc-linux-gnu-g77 -fPIC -DBUILD_DLL -O3 -c -o dso/i686-pc-linux-gnu-g77/egs_polygon.o egs_polygon.cpp
g++ -I../lib/i686-pc-linux-gnu-g77 -fPIC -DBUILD_DLL -O3 -c -o dso/i686-pc-linux-gnu-g77/egs_projectors.o egs_projectors.cpp
g++ -I../lib/i686-pc-linux-gnu-g77 -fPIC -DBUILD_DLL -O3 -c -o dso/i686-pc-linux-gnu-g77/egs_alias_table.o egs_alias_table.cpp
g++ -I../lib/i686-pc-linux-gnu-g77 -fPIC -DBUILD_DLL -O3 -c -o dso/i686-pc-linux-gnu-g77/egs_object_factory.o egs_object_factory.cpp
egs_object_factory.cpp: In constructor ‘EGS_ObjectFactory::EGS_ObjectFactory(const std::string&)’:
egs_object_factory.cpp:96: error: ‘getenv’ was not declared in this scope
make: *** [dso/i686-pc-linux-gnu-g77/egs_object_factory.o] Greška 1

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

Posto sam potpuno nov u tom C++ biznisu, moze li mi netko dati savjet sto je razlog ove greske. Ono sto znam je da sam pod Suse 9.1 na starom PC-u izveo 'make' bez pogreske i da je sve radilo OK.

Pozdrav

Darko
Postano : 23.08.2008 2:43:43
Izradi PDF od ove poruke Ispis
Vrh
Re: C++ compile error
#2
Linux Master
Pridružen: 04.01.2005
Od 33 stupnja i 4 minute sjeverno, i zatim 5 koraka na zapad
Poruke: 2391
Level : 39
HP : 0 / 964
MP : 797 / 54316
EXP : 56
Grupa:
Webmasters
Registered Users
HULK
UrednikNovosti
UrednikRecenzija
UrednikLinkova
ModeratoriForuma
UrednikSekcija
UrednikBlogova
UrednikDogadjanja
UrednikDokumenata
UrednikKomentara
Offline
Očito je g++ postao striktniji u tretiranju nekih upozorenja i grešaka. Mislim da imaš par mogućnosti:

- ispraviti grešku u kodu, odnosno definirati "getenv" tako da ga kompajler vidi, i zna što s tim treba napraviti
- javiti autorima te MC simulacije problem i tražiti savjet/patch
- javiti autorima gcc-a i tražiti savjet
- staviti stariju verziju gcc-a (odnosno g++-a)
_________________
Poći ću s vama jer volim šalu, hoću da vidim ježa budalu.

Put u Japan
Postano : 24.08.2008 16:24:09
Izradi PDF od ove poruke Ispis
Vrh
  •  dakdak
      dakdak
Re: C++ compile error
#3
Upravo došao
Pridružen: 17.06.2005
Od
Poruke: 18
Level : 2
HP : 0 / 49
MP : 6 / 2720
EXP : 97
Grupa:
Registered Users
Offline
Hvala za hint. Kad sam u sporni : egs_object_factory.cpp
dodao:

#include <cstdlib>
#include <cstring>

'make' je prosao bez greske.



Citat:

slobodan je napisao/la:
Očito je g++ postao striktniji u tretiranju nekih upozorenja i grešaka. Mislim da imaš par mogućnosti:

- ispraviti grešku u kodu, odnosno definirati "getenv" tako da ga kompajler vidi, i zna što s tim treba napraviti
- javiti autorima te MC simulacije problem i tražiti savjet/patch
- javiti autorima gcc-a i tražiti savjet
- staviti stariju verziju gcc-a (odnosno g++-a)
Postano : 25.08.2008 4:26:31
Izradi PDF od ove poruke Ispis
Vrh
  •  jazzfan
      jazzfan
Re: C++ compile error
#4
Upravo došao
Pridružen: 06.01.2009
Od
Poruke: 11
Level : 2
HP : 0 / 28
MP : 3 / 1260
EXP : 12
Grupa:
Registered Users
Offline
od gcc (g++) kompajlera verzije 4.0 i vece, cstdlib i cstring vise nisu ukljuceni po defaultu....
takodjer, doslo je do promjena u template-ima.
tako da ako vam baci gresku kod definicije funkcija i spomene template-e, treba samo dodat ovo:

template <>
definicija_funkcije();

Takodjer, koliko znam, operatori <? <?= >? >?= su ukinuti.... njihov ekvivalent je da koristite std::min i std::max

int var1 = var2 <? var2; je isto kao: int var1 = std::min (var2, var3);
int var1 = var2 >? var2; je isto kao: int var1 = std::max (var2, var3);
int var1 <?= var2; je isto kao: int var1 = std::min (var1, var2);
int var1 >?= var2; je isto kao: int var1 = std::max (var1, var2);

To su sve promjene koje sam uspio uociti...
Najpametnije vam je, da ako dodje do greske, da downgrade-ate na verziju 3.x
Postano : 06.01.2009 10:21:09
Izradi PDF od ove poruke Ispis
Vrh
 Vrh   Prethodna tema   Sljedeca tema

 


 Ne možete pokrenuti novu temu.
 Možete citati teme.
 Ne možete odgovarati na poruke.
 Ne možete uredivati svoje poruke.
 Ne možete brisati svoje poruke.
 Ne možete dodavati nove ankete.
 Ne možete glasati u anketama.
 Ne možete dodavati fileove porukama.
 Ne možete slati poruke bez odobrenja.
Copyright © 1995-2009 HULK web team. Sva prava pridržana. RSS. Engine: XOOPS