webForumDet fria alternativet

C2065 eller LNK2005

C/C++ur C/C++

3 svar · 321 visningar · startad av nowb

Medlem sedan juli 20053 inlägg
Frågan#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!!!!

Medlem sedan juni 200010 432 inlägg
#2

Hur har du skrivit h-filen?

Medlem 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()
{
 ...
}
Medlem sedan juli 20053 inlägg
#4

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

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