Linker Error wegen *.lib
-
roN schrieb:
wie zur hölle kommst du auf mysql.h? mein dll-header ist isMB.h und isMBdef.h
KA, aber du weißt ja was ich meinte. Hab da grad min mein Projekt verwechselt.

roN schrieb:
welche sich im selben pfad befinden wie die exe und wenn ich #include mit "" und nicht mit <> benutze, dann sucht der pre-compiler relativ vom ordner in dem sich die *.exe befindet und nicht nach dem pfad der im BCB eingestellt ist. Die *.lib hab' ich auch im selben verzeichniss und den genauen pfad kann man in der projekt.cpp einstellen(relativ oder absolut)....

Nein er sucht nicht da wo die .exe ist. Warum auch?
Schau dir mal die Projekt Optionen an.. Da stehen die Pfade und die PFade die da stehen durchforstet er (bei <>).
Bei "" durchsucht er nur den Stammordner.sonst würde nicht viele das so schreiben: #include "mysql\src\mysql.h"
Da frag ich mich dann warum das gemacht wird????
Weil er im Ordern mysql und mysql\src nicht sucht....Beispiel:
Ordner:
Admin |--- bin |--- debug |--- mysql | |-- src | | |-- mysql.h | | |-- hannes.h | | |-- peter.h |--- main.cpp |--- test.bprWenn in der main.cpp folgendes drin steht:
#include "mysql.h"
Findet er bei mir dann ja nix....
Erst wenn ich den Pfad mysql\src\ in den Projektpfad aufnehme. Komisch, nach dein Text müßte es ja dann gehen.2. habe ich nicht geredet von BCB-Einstellungen, sonder Projekt-Einstellungen. Und sind auch Pfade vom BCB drin (Include, etc.)... und dannn sucht er in diesen pfaden auch...

3. wenn du das tippst #include "mysql.h" und er findet nix in dem Ordner (wo deine projekt datei liegt), sucht er in den pfaden die in Projekt-Einstellungen eingetragen sind.
-
DJ BlackEagle schrieb:
Nein er sucht nicht da wo die .exe ist. Warum auch?
Schau dir mal die Projekt Optionen an.. Da stehen die Pfade und die PFade die da stehen durchforstet er (bei <>).
Bei "" durchsucht er nur den Stammordner.sonst würde nicht viele das so schreiben: #include "mysql\src\mysql.h"
Da frag ich mich dann warum das gemacht wird????
Weil er im Ordern mysql und mysql\src nicht sucht....Wenn in der main.cpp folgendes drin steht:
#include "mysql.h"
Findet er bei mir dann ja nix....
Erst wenn ich den Pfad mysql\src\ in den Projektpfad aufnehme. Komisch, nach dein Text müßte es ja dann gehen.2. habe ich nicht geredet von BCB-Einstellungen, sonder Projekt-Einstellungen. Und sind auch Pfade vom BCB drin (Include, etc.)... und dannn sucht er in diesen pfaden auch...

3. wenn du das tippst #include "mysql.h" und er findet nix in dem Ordner (wo deine projekt datei liegt), sucht er in den pfaden die in Projekt-Einstellungen eingetragen sind.Okay, ich hab' das Verzeichnis jetzt auch hinzugefügt, es erscheinen aber immernoch exakt dieselben Linker-Fehler...

-
Schließe Borland und lösche mal alle *.obj, *.tds.
Und komepiliere es neu.Denke mal dann der selber fehler wieder...
Hast du auch den Libary Pfad auch angepasst (wo die *.obj von isMB.h etc. liegen)???
Weil er findet *.obj Files nicht..
-
Hallo!
Was mir noch einfällt, vielleicht hast du das ja noch nicht gemacht:
Hast du schon mal versucht, einfach das Projekt komplett neu builden zu lassen? Also "Projekt" - "ProjektXYZ erzeugen"
tschüss
Robert
-
DJ BlackEagle schrieb:
Schließe Borland und lösche mal alle *.obj, *.tds.
Und komepiliere es neu.Denke mal dann der selber fehler wieder...
Hast du auch den Libary Pfad auch angepasst (wo die *.obj von isMB.h etc. liegen)???
Weil er findet *.obj Files nicht..
Scheisse, immernoch dieselben Fehler...

-
rowisoft schrieb:
Hallo!
Was mir noch einfällt, vielleicht hast du das ja noch nicht gemacht:
Hast du schon mal versucht, einfach das Projekt komplett neu builden zu lassen? Also "Projekt" - "ProjektXYZ erzeugen"
tschüss
Robertdies meinte ich doch, nur ist deine variante nicht sauber. lieber alle files löschen und dann kompelieren. ist immer das sicherste...
-
Hallo!
dies meinte ich doch
Sorry, hab wohl n bisschen länger zum tippen gebraucht als du
Da war dein Beitrag noch nicht online 
-
@rowisoft
nicht schlimm.@roN
Wenn alles richtig includeiert ist und die pfade korekkt gesetzt sind.
Löse ich das nun mal so auf und das muß nun der Fehler sein. sonst

Der Linker findet die Funktion _ini... etc. nicht.
Der Linker linkt die ganzen .obj,.lib.
Das heißt das deine .lib nicht in Ordnung ist und nicht richtig konventiert wurde.War das eine BCB lib oder eine VC lib?
Wenn es ja eine BCB ist, brauchst du das ja nicht, nur bei den VC lib's muß das gemacht werden.
-
DJ BlackEagle schrieb:
@rowisoft
nicht schlimm.@roN
Wenn alles richtig includeiert ist und die pfade korekkt gesetzt sind.
Löse ich das nun mal so auf und das muß nun der Fehler sein. sonst

Der Linker findet die Funktion _ini... etc. nicht.
Der Linker linkt die ganzen .obj,.lib.
Das heißt das deine .lib nicht in Ordnung ist und nicht richtig konventiert wurde.War das eine BCB lib oder eine VC lib?
Wenn es ja eine BCB ist, brauchst du das ja nicht, nur bei den VC lib's muß das gemacht werden.Ich habe die dll bereits 2mal mit Borland implib.exe konvertiert und beides mal kamen dieselben *.lib dateien raus...
d.h.
ich hab' hier: http://groups.google.com/groups?q="LinkerError+because+of+lib"&hl=de&lr=&ie=UTF-8&selm=413f1370%40newsgroups.borland.com&rnum=1
noch eine Diskussion mit einem typ vom TeamB am laufen, hoffe der kann mir helfen...
-
Okay, hab' es gelinkt gekriegt damit: :p
Give a command like this: impdef -a DllName.DEF DllName.DLL That should create a file with aliases for the functions. create a new import library from the def file with a command like this and use the new import library in the project instead of the old one implib -c DllName.LIB DllName.DEF
