Allt från Computex 2023

C: error LNK2019: unresolved external symbol - Kan ej förstå C-filen med MSVC

Permalänk

C: error LNK2019: unresolved external symbol - Kan ej förstå C-filen med MSVC

Jag försöker konvertera om ett Eclispe-projekt som är gjort i C, till ett MSVC projekt som är också gjort i C, fast kompilatorn är C++.

Så jag klonade mitt C-projekt från GitHub och sedan så märkade jag att jag kunde inte öppna mitt C projekt som är gjort i Eclipse.
Så då skapade jag ett separat projekt i Visual Studio 2022, med exakt samma namn, helt tomt. Sedan flyttade jag över filerna till mitt GitHub projekt och öppnade Main.c filen. OK bra!

Men när jag ska kompilera så skriker den på mig.

error LNK2019: unresolved external symbol <funktionens namn> referenced in function main

Så vad betyder detta? Kan den inte läsa mina C-funktioner?
Jag vet att LNK2019 brukar vara ett vanligt förekommande fel, men det är lika fel, trots samma felkod.
Jag kan inkludera headerfiler och min IDE verkar hitta alla funktioner. Så vad kan vara fel här?

Det är en konsollapplikation.

Permalänk
Medlem

Uppenbarligen så är det någon variabel eller funktion som används och som länkaren inte hittar.

Tre möjligheter:
1) Det är en funktion/variabel som är definierad i dina filer, men där länkaren inte förstår att den/de filerna skall länkas in i programmet.
2) Funktionen/variabeln är definierad i något bibliotek som du missat att länka med
3) Du länkar med rätt bibliotek, men det är fråga om en icke-standard funktion/variabel som fanns i din gamla utvecklingsmiljö men inte i den nya.

Permalänk
Skrivet av Erik_T:

Uppenbarligen så är det någon variabel eller funktion som används och som länkaren inte hittar.

Tre möjligheter:
1) Det är en funktion/variabel som är definierad i dina filer, men där länkaren inte förstår att den/de filerna skall länkas in i programmet.
2) Funktionen/variabeln är definierad i något bibliotek som du missat att länka med
3) Du länkar med rätt bibliotek, men det är fråga om en icke-standard funktion/variabel som fanns i din gamla utvecklingsmiljö men inte i den nya.

Jag testade att skapa en fil som heter test.c där jag har samma header som övriga filer. Detta fungerar bra.
Men varför är det ett "-" tecken?

Permalänk
Medlem
Skrivet av heretic16:

Jag testade att skapa en fil som heter test.c där jag har samma header som övriga filer. Detta fungerar bra.

Vad du har för header och så är irrelevant. Det är den kompilerade koden för någon funktion som inte hittas när programmet skall länkas ihop.

Permalänk
Hedersmedlem
Skrivet av heretic16:

Jag testade att skapa en fil som heter test.c där jag har samma header som övriga filer. Detta fungerar bra.
Men varför är det ett "-" tecken?

https://i.ibb.co/Wxdg6w2/BJ-Result.png

Det där betyder att filen inte inkluderas vid kompilering. Testa Högerklick --> Properties -> General --> Exclude from build: No

Permalänk
Skrivet av Elgot:

Det där betyder att filen inte inkluderas vid kompilering. Testa Högerklick --> Properties -> General --> Exclude from build: No

Japp. Du har rätt. Nu fungerar det.
Tack så mycket.

Har helt gått över till Visual Studio Community nu. Fast mina gamla project har fortfarande Eclipse projektstrukturen kvar.

Tackar.