Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

gcc (g++) i headeri

[es] :: C/C++ programiranje :: C/C++ za početnike :: gcc (g++) i headeri

[ Pregleda: 1531 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Atlantic777
učenik srednje škole

Član broj: 166316
Poruke: 42
*.ADSL.neobee.net.



Profil

icon gcc (g++) i headeri29.06.2009. u 18:19 - pre 180 meseci
Do sada sam koristio iskljucivo C# (MSVC#) pa sam se malo razmazio, a od nedavno sam presao na g++ i trudim se da radim iskljucivo pod linuxom (ubuntu) ali sam naisao na problem, a resenje mi treba poprilicno hitno. Trazio sam na forumima (kako ovom tako i na stranim) ali nisam pronasao adekvatno resenje. Ako je negde vec objasnjeno, zamolio bih vas da mi prosledite link. U literaturi koju imam ne mogu da pronadjem resenje, a necu stici da procitam kompletnu knjigu koju sam svakako vec poceo citati.

Do sada nisam imao potrebu da pisem svoje headere, klase sam uvek strpao u jedan .cpp fajl i to je to, a sada hocu da svoje klase odvojim u jedan header koji cu kasnije da ukljucim u vise programa.

Kako tacno treba da izgleda struktura header fajla? Samo kod ili su potrebne i pretprocesorkse direktive? (mislim na #ifdef i sl.) Da li i header treba kompajlirati? Kada kompajliram .h fajl, dobijem jos jedan .h.gch. Procitao sam da taj .h.gch fajl treba obrisati, ali ni to mi nije pomoglo.

Dakle, u jednom folderu imam prog.cpp i header.h fajlove. U prog.cpp imam "#include <header.h>". Ovo ne prolazi, kompajler prijavljuje gresku da ne moze da pronadje header. Sta dalje?
 
Odgovor na temu

combuster
Ivan Bulatovic
Kraljevo

Član broj: 151351
Poruke: 4563
93.86.111.*

Sajt: www.linuxsrbija.org


+104 Profil

icon Re: gcc (g++) i headeri29.06.2009. u 18:24 - pre 180 meseci
http://stackoverflow.com/quest...-include-path-for-gcc-in-linux
http://www.network-theory.co.uk/docs/gccintro/gccintro_22.html

Treba da dodas putanju header-a ako nije u default include direktorijumu...
make love - !war
 
Odgovor na temu

Atlantic777
učenik srednje škole

Član broj: 166316
Poruke: 42
*.ADSL.neobee.net.



Profil

icon Re: gcc (g++) i headeri29.06.2009. u 19:04 - pre 180 meseci
Problem je bio u tome sto sam kompajler upucivao na folder a ne na fajl headera.

A one pretprocesorske direktive su tu da bi sprecile da se neka klasa definise vise puta, ako sam dobro shvatio.

E sada, nije mi bas najjasnije gde sam ovde vise puta definisao klasu.

header.h
Code:

class integer

     public:
     int i;
};


prog.cpp
Code:

#include "header.h"

int main() { return 0 };


komanda kojom kompajliram:
Code:
 g++ prog.cpp -include ./head.h 


i dobijam gresku:
Code:

head.h:1: error: redefinition of ‘class integer’
head.h:1: error: previous definition of ‘class integer’


Kada u header dodam #ifndef i ostalo onda radi.
Dakle kada mi header izgleda ovako:
Code:

#ifndef OBJECT_H
#define OBJECT_H
class integer{ 
    public:
    int i;
    };
#endif


I... da, ako jos neko bude imao problema s ovim, headere definitivno treba kompajlirati. :D
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.dynamic.sbb.rs.



+1 Profil

icon Re: gcc (g++) i headeri01.07.2009. u 20:25 - pre 180 meseci
Ne treba ti -include opcija pri pozivu jer ona inkluduje navedeni fajl, što uz direktivu #include u prog.cpp daje duplu inkluziju. Dakle, koristi
Code:

g++ prog.cpp


P.S.
Tek ako kompajler ne može da nađe zaglavlja u podrazumevanim putanjama, treba da mu to naznačiš ali preko -I (veliko i) opcije - i to samo putanju ne i sam fajl.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

Atlantic777
učenik srednje škole

Član broj: 166316
Poruke: 42
*.ADSL.neobee.net.



Profil

icon Re: gcc (g++) i headeri02.07.2009. u 16:49 - pre 180 meseci
Evo sada radi i bez toga, ne znam zasto tada nije htelo... :)
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: gcc (g++) i headeri

[ Pregleda: 1531 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.