Fehler : game.def : error LNK2001: unresolved external symbol vmMain
-
Hi,
ich habe microsoft visual basic 2008 und versuchen gerade eine Dll Datei zu erstellen von dem Quake3Arena Quellcode, der in C geschrieben ist. Es klappt alles Wunderbar. Ausser ziemlich zum Schluss bekomme ich immer diese Meldung
"Linking...
game.def : error LNK2001: unresolved external symbol vmMain
.\Debug_TA/qagamex86.lib : fatal error LNK1120: 1 unresolved externals"Seit zwei Tagen, versuche ich den Fehler zu finden , aber ohne Erfolg. Ich habe schon alles möglich versucht.
Diese Datei exestiert auch garnicht auf meinem Rechner "qagamex86.lib"
Und was bedeutet vmMain"
Vielleicht hat ja jemand hier das gleiche Problem gehabt und kann mir helfen.
Vielen Dank
Grüsse
-
es wär vielleicht etwas hilfreicher wenn du uns den code geben würdest, wo er meckert, und vielleicht sachen die damit zusammen hängen
-
Also ich habe drei Dateien, die zu dem Quellcode gehören vor dem kompilieren ausgeschlossen also excludiert. Weil es bei diesen Dateien nur Fehlermeldungen gegeben hat. Es waren auch diese zwei Dateien dabei g_main.c und ai_main.c. Ich glaube da liegt der Fehler. Diese zwei Dateien und noch eine weitere hätte ich mit kompilieren müssen. Aber immer wenn ich den Quellcode mit diesen 3 Dateien kompiliert habe, bekam ich diese Fehlermeldungen
Diese bestimmt 80 mal
.\g_team.c(89) : error C2065: '__firstarg' : undeclared identifier
Und diese 5 mal
.\g_team.c(89) : warning C4013: '__typecode' undefined; assuming extern returning int
Bei genau diesen drei Dateien habe ich die oben genannten Fehlermeldungen erhalten, deswegen habe ich Sie vom Code excludiert.
g_main.c
ai_main.c
g_team.cIch verstehe garnicht warum. Ich habe noch nichts am Quellcode verändert. Es ist der originale Quellcode von IDSoftware. Der Quellcode ist eigentlich speziell für die ältere 6 Version. Aber es sollte doch auch mit der 8 Verison klappen? In dem Workshop steht nur das ich von Debug_TA nach Debug stellen soll und win32, das habe ich gemacht. Oder muss ich im Programm selber noch was aktiveren, wiel der QWuellcode schon ziemlich alt ist. Ich glaube in C Programmiert.
Hier kannst Du dir den Quellcode online ansehen, musst nichts herunterladen oder installieren.
Beim anklicken des Links kommst Du genau zu diesem Ordner "Game" aus dem ich die dll erstellen möchte[urlhttp://svn.beer-garden.org/listing.php?repname=q3arsenal&path=%2Fcode%2Fgame%2F&rev=0&sc=0[/url]
Grüsse
-
Also ich hatte vorhin mal gegoogelt so wie das für mich aussah fehlen dir Libs. .c ist ein Kürzel das für C dateien verwendet wird. Was ich mich allerdings Frage ist wieso Nutzt du Visual Basic für C Code?
-
Weil sich das gesamt Projekt "quake3sdk.dsw" nennt. Das ist speziell für Micrsoft visual Basic C++ 2006. Nur diese Version habe ich nirgends gefunden, von daher habe ich die neue 2008 Version genommen. Ich dachte damit geht es auch.
Wenn ich die Datei "quake3sdk.dsw" in Visual Basic öffnen, habe ich alle Dateien links in einer Baumstruktur. Brauche nur noch den Code verändern und dann auf Build klicken. Dann sollte, wenn die Fehlermeldungen nicht wären, sofort eine qagamex86.dll erstellt werden. So steht es auch in dem Workshop, den ich im Internet gefunden habe. Aber der ist wie schon erwähnt mit Visual basic C++ 2006. Das wäre dann mein selbst erstelltest Quake3 Mod.
Welches Programm kann denn noch diese .dsw Dateien lesen?
Grüsse
-
Hast du überhaupt erfahrung mit Programmiersprachen?
Microsoft Visual Basic C++ 2006 gibt es nicht, es gibt Basic und C++ das sind verschiedene Dinge und es gibt ne 2005 und ne 2008 Version. Dein Fehler mit dem Lib führt wohl daher das du ne Dll brauchst und du das Lib einbinden musst was du nicht hast. Das siehtb alles sehr windig aus.
-
Hi,
nein leider habe ich keine Ahnung. Aber unter dieser Datei"quake3sdk.dsw" steht VC++ 6 Workspace. Und diese DLL finde ich auch nciht auf meinem Rechner.
Grüsse
-
Also so kommst du jedenfalls nicht weiter, und VC++ 6 Workspace ist Visual C++ 6 und die 6 ist ne Versionsnumemr die is uralt.
Wenn du wirklich in dem Bereich was machen willst solltest du dich mal mit Programmieren beschäftigen denn einfach so alles zsuammenwerfen und Manipulieren geht nicht lange gut.