webForumDet fria alternativet

C2065 eller LNK2005

3 svar · 321 visningar · startad av nowb

nowbMedlem sedan juli 20053 inlägg
#1

Hej!

Jag har lite problem med en header fil. Jag har gjort en fil "lab.h" som endast innehåller funktioner som returnerar diverse object (int, double o.s.v.). Två andra filer (main1.cpp, main2.cpp) använder båda funktionerna i "lab.h". main2.cpp anropas i main1.cpp.

Om jag includerar lab.h i main1.cpp får jag meddelandet C2065 ('funktionsnamn': undeclared identifier) när jag compilerar koden.

Om jag includerar lab.h i både main1.cpp och main2.cpp får jag meddelandet LNK005 ('funktionsnamn': already defined) när jag compilerar koden.

Jag har header filer till main1 och main2 där jag också försökt inkludera lab.h men det blir alltid något av felen.

Skulle bli grymt tacksam för lite hjälp!!!!

PeWMedlem sedan juni 200010 432 inlägg
#2

Hur har du skrivit h-filen?

Sang-draxMedlem sedan juli 2002581 inlägg
#3

Du kan inte definera samma funktion två gånger i olika cpp-filer (vilket blir följden av att ha definitionen i header-filen).

Deklarera funktionen i headern och definera den i endast en av cpp-filerna.

Header:

int funk();

Cpp-fil:

int funk()
{
 ...
}
nowbMedlem sedan juli 20053 inlägg
#4

Jag fick det att funka genom att göra metoderna av typen "static"

133 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)