dummy frage: in welcher lib finde ich...
-
pointercrash() schrieb:
_matze schrieb:
Dafür brauchst du keine lib! Wie kommst du darauf?
Wie kommst Du darauf, daß er dafür keine Lib bräuchte
? Dieses ganze <foo.h> - Zeugs sind statisch gelinkte libs, er hat halt erstmal die Falsche erwischt.
Jaaa, du weißt schon, wie ich das meine. er braucht keine pragma comment blabla Anweisung zu notieren (und komm mir jetzt nicht mit project settings)...
-
ich krieg halt beim linken derartige fehler und dachte das es halt was damit zu tun ham könnte, weil wenn sonst eine lib fehlt ähnliche fehler kommen
test.obj : error LNK2028: Nicht aufgelöstes Token (0A00000E) ""char * __cdecl gets(char *)" (?gets@@$$FYAPADPAD@Z)"...
wie kann ich das beheben?
-
der linke linker hat dich gelinkt, wa ey
-
link0r schrieb:
der linke linker hat dich gelinkt, wa ey
vielen dank für den echt hilfreichen tipp
-
libc linken
-
leider ist das mit der lib kein unterschied
-
gelenke-harald schrieb:
leider ist das mit der lib kein unterschied
Da geht was schief -bitte neues Projekt aufbauen, Fünfzeiler basteln, der nich compiliert (aber genauso und mit c++-Tags) samt Fehlermeldungen des Compilers hier posten - hilft uns, Dir zu helfen.
-
... falschen Projekttyp gewählt ?
-
hab jetzt ein komplett neues projekt erstellt
vielleicht umreise ich mal kurz mein eigentliches ziel, ich möchte eine dll, die ich dann über matlab aufrufe, das hab ich schon verstanden und klappt auch allesjetzt soll jedoch über einen dialog ein gerät ausgewählt werden und mit dem dazugehörigen handle weitergearbeitet werden (würde fürs erste erstmal zu detalliert werden)
#include "verschiebetische.h" void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { char str[105] = { 100 }; printf("Select:\n"); gets(str); }
die verschiebetische.h sieht so aus
#include <stdio.h> #include <math.h> #include <tchar.h> #include <conio.h> #include <process.h> #include "USMCDLL.h" #include "mex.h" #pragma comment(lib, "USMCDLL.lib") #pragma comment(lib, "libmex.lib") #pragma comment(lib, "libmx.lib") #pragma comment(lib, "libc.lib")
jedoch erhalte ich immernoch folgende fehlermeldungen
warning LNK4098: Standardbibliothek "libc.lib" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
warning LNK4248: Nicht aufgelöstes Typeref-Token (0100000F) für "mxArray_tag". Das Abbild kann möglicherweise nicht ausgeführt werden.
error LNK2028: Nicht aufgelöstes Token (0A00000B) ""char * __cdecl gets(char *)" (?gets@@$$FYAPADPAD@Z)", auf das in Funktion ""extern "C" void __cdecl mexFunction(int,struct mxArray_tag * * const,int,struct mxArray_tag const * * const)" (?mexFunction@@$$J0YAXHQAPAUmxArray_tag@@HQAPBU1@@Z)" verwiesen wird.
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""char * __cdecl gets(char *)" (?gets@@$$FYAPADPAD@Z)" in Funktion ""extern "C" void __cdecl mexFunction(int,struct mxArray_tag * * const,int,struct mxArray_tag const * * const)" (?mexFunction@@$$J0YAXHQAPAUmxArray_tag@@HQAPBU1@@Z)".
-
kann mir keiner einen tip geben? damit ich was mit den fehlern anfangen kann?
grüße
-
Bei der ersten Warnung steht doch schon, was du machen kannst. Hast du das mal ausprobiert?
-
gelenke-harald schrieb:
#pragma comment(lib, "libc.lib")
das würde ich schon mal weglassen. der ms-compiler kennt mehrere libc's (abhängig von den projekt-settings) und wenn du ihm gewaltsam eine unterjubelst, gibts konflikte mit der automatisch ausgewählten 'libc'. ausserdem wichtig: die endung der quelltexte sollte .c und nicht .cpp sein. hat vermutlich nix mit deinem aktuellen problem zu tun, aber wenn du das nicht beachtest, gibts später noch andere, seltsame zickereien.
-
hab beides ausprobiert und jetzt komplett die libc.lib rausgelassen, jedoch sind die fehler immernoch da
-
generell hab ich das problem mit dem "nicht aufgelösten token" und ich bekomm das einfach ni weg
error LNK2020: Nicht aufgelöstes Token (0A00002B)
liegt das vielleicht an kompiler einstellungen?
-
http://msdn.microsoft.com/en-us/library/b57tw91b(VS.80).aspx.
sieht so aus, als wenn der fehler irgendwas mit .NET zu tun hat. schau mal in deine projekteinstellungen, ob da nicht aus versehen 'managed c++' oder sowas eingestellt ist.
btw: um ein testprojekt zu erzeugen, wähle als projekttyp 'win32 console', als leeres projekt (sonst generiert er dir 'nen haufen schrott, den man dafür nicht braucht, mit _tmain, TCHAR, stdafx.h und sowas), ohne precompiled headers und ohne unicode unterstützung, erstell eine datei mit endung .c und folgendem inhalt:include <stdio.h> // <-- hier eventuell noch andere #includes wie <math.h>, <stdlib.h>, etc. int main (void) { }
füg die datei in das projekt ein
...und pack zwischen die geschweiften klammern deinen testcode.