Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: *.hpp ei ole kelvollinen tiedosto

Sivun loppuun

p-p [01.08.2004 11:59:58]

#

oon tehny tämmösen olion,jonka nimi on energy.hpp

class energy
{
      int hp;
      int mp;
};

ja oon liittänyt sen mun ohjelmaan näin

#include "C:\omat tiedostot\CPP\energy.hpp"

nii se väittää et kansio ei oo oikee,mutta se on oikee.
missä vois olla vika?

thefox [01.08.2004 15:36:15]

#

Ei kannata käyttää koko hakemistopolkua kun sisällytät tuota filua, laita vain:

#include "energy.hpp"

Olettaen että tiedostot ovat oikeilla paikoillaan.

Periaatteessa kääntäjällä voisi olla jotain noita kenoviivoja vastaan mutta ainakaan Mingw, VC++ 6.0 ja Intel C++ Compiler 8.0 eivät niistä välitä (kuten ei varmasti kuulukaan).

Oletko nyt *aivan varma* että tiedosto on paikallaan?

tejeez [01.08.2004 15:45:17]

#

Kokeile laittaa noiden \-merkkien paikalle kaksi \-merkkiä :)

p-p [01.08.2004 19:24:34]

#

mikäs on se oikea paikka?jos tarkotat tota polkua mikä tos on (C:\omat tiedostot\CPP\energy.hpp) nii se on ihan oikein.vaa sehän ku on dos ohjelma nii nyt tulin miettineeks, että sehän ehkä pitäis olla C:\omatti~1\cpp\energy.hpp.kokeilen huomen ku en nyt jaksa käy kannettavankaa leikki.

Heikki [01.08.2004 21:05:22]

#

Itsekkin epäilen, että tuo välilyönti aiheuttaa virheen (tai sitten yli 8-merkkinen hakemisto).

Helpommalla pääset kun tallennat h/hpp-tiedostosi c/cpp-tiedostojen kanssa samaan kansioon. Tällöin voit sisällyttää sen helposti:

#include "energy.hpp"

tn [01.08.2004 21:13:05]

#

Kannattaa tehdä niinkuin tejeez sanoi tai sitten korvata kenoviivat kautta-merkeillä (/).

Metabolix [01.08.2004 21:21:22]

#

Virhe johtuu nimenomaan noista kenoviivoista. Cpp:ssa kun merrkijonoon voi merkitä merkkejä niiden ascii-koodeilla tai muilla merkinnöillä, esim "/n" on rivinvaihto. Joka tapauksessa kannattaa laittaa tiedosto joko samaan kansioon kuin projekti, jolloin pelkkä tiedostonimi riittää, tai lisätä ko. kansio kääntäjän include-dir -listaan.

thefox [02.08.2004 00:52:28]

#

Ikävä kyllä et maininnut kääntäjääsi niin ei voi tietää tuetaanko siinä pitkiä tiedostonnimiä.

Metabolix: kuten sanoin, ainakaan Mingw (eli GCC), VC++ 6.0 ja Intel C++ Compiler 8.0 eivät noista kenoviivoista välitä, siis ainakin niissä homma toimii vaikka ei laittaisikaan kahta kenoviivaa. Noita eskeippauksia ei luultavasti edes käsitellä ennen kuin tiedosto on mennyt preprosessorin läpi (#include on preprosessorin komento). Rivinvaihto on muuten \n :)

Heikki: myöskin välilyönnin kanssa ei ollut em. kääntäjillä mitään ongelmia.

edit: jäi lause kesken

Metabolix [02.08.2004 01:01:06]

#

Sori hirveästi, että tuli kenoviiva väärin päin :'(

p-p [02.08.2004 19:52:17]

#

Käytän dev-c++ ohjelmaa,siinähän on Mingw.

tn [02.08.2004 20:07:38]

#

fawkz kirjoitti:

ainakaan Mingw (eli GCC), VC++ 6.0 ja Intel C++ Compiler 8.0 eivät noista kenoviivoista välitä, siis ainakin niissä homma toimii vaikka ei laittaisikaan kahta kenoviivaa

p-p kirjoitti:

Käytän dev-c++ ohjelmaa,siinähän on Mingw.

Niin minäkin, eikä ole vielä kertaakaan toiminut yhdellä keno(\)-viivalla, vaikka on monta kertaa tullut yritettyä.

thefox [03.08.2004 15:54:27]

#

Tällaisella testailin:

#include "C:\atmp\pekka\Uusi kansio\shit.txt"

Ja hyvin tuntuu toimivan :)

Itse kuitenkin omissa projekteissani käytän aina '/'-merkkiä ihan yhteensopivuussyistä. Mitään absoluuttisia hakemistopolkuja ei kannata käyttää koskaan.

edit: gcc --version -> gcc (GCC) 3.2 (mingw special 20020817-1)

p-p [04.08.2004 15:16:43]

#

muutin ton #include rivin tämmöseks

#include "energy.hpp"

ja nyt toimii

Kiitos vastauksistanne


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta