C2065 eller LNK2005

C/C++

3 svar · 348 visningar · startad av nowb

Medlem sedan juli 20053 inlägg
Trådstart#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"

251 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)