AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

BCB: Was macht der Linker falsch?

Ein Thema von messie · begonnen am 3. Feb 2008 · letzter Beitrag vom 27. Mär 2008
Antwort Antwort
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

BCB: Was macht der Linker falsch?

  Alt 3. Feb 2008, 20:33
Moin,

ich habe mal versucht, den BCB6 auf einen neuen PC zu installieren. Das geht, inklusive ServicePack4 und neuen Ilink32 (darauf werde ich noch in einem anderen Thread hinweisen) ganz gut.
Bei der Installation des Alphacontrols-Package bekomme ich Linker-Fehler, von denen ich gerne wissen würde, wie sie entstehen.

z.B.
Code:
[Linker Error] Unresolved external '__fastcall Acutils::NormalDir(const System::WideString)' referenced from SINTERNALSKINS.OBJ
Sehe ich mir die sInternalskins.pas an, wird dort tatsächlich NormalDir verwendet allerdings wird dort ein String übergeben. Das könnte der Fehler schon sein. Merkwürdig finde ich aber auch, dass in der Acutils.pas function NormalDir(const DirName: ACString): ACString; steht, in der eben bei der Package-Installation erzeugten Acutils.hpp dann
Code:
extern PACKAGE WideString __fastcall NormalDir(const WideString DirName);
steht.
Ist dieser hpp-Eintrag mit WideString durch eine Referenz auf ACString verursacht?

Ein wenig Klarheit würde mir sehr helfen.

Danke, Messie
  Mit Zitat antworten Zitat
DMW

Registriert seit: 6. Sep 2006
Ort: Münster
269 Beiträge
 
Delphi XE Professional
 
#2

Re: BCB: Was macht der Linker falsch?

  Alt 3. Feb 2008, 20:51
Wie lautet denn die Definition von ACString?
Moritz
  Mit Zitat antworten Zitat
Mark90
(Gast)

n/a Beiträge
 
#3

Re: BCB: Was macht der Linker falsch?

  Alt 3. Feb 2008, 21:08
bei mir kam auch immer ein LINKER-ERROR(der selbe wie oben). dieser kam jedoch nur, wenn ich die projektdateien verschoben habe. als ich mein BCB geupdated habe, war dieses problem behoben.
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#4

Re: BCB: Was macht der Linker falsch?

  Alt 3. Feb 2008, 21:17
Die Definition von ACString habe ich noch nicht gefunden (noch kein Delphi installiert).
Projektdateien habe ich noch gar keine in Gebrauch, bin noch mit dem nackten BCB zugange.

Grüße, Messie
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: BCB: Was macht der Linker falsch?

  Alt 3. Feb 2008, 21:18
die Meldung sagt doch alles. Die extern declaration ist vorhanden aber die Implementation wird nicht gefunden. Sowas tritt eigentlich immer dann auf wenn die entsprechenden C-Dateien nicht mit gelinkt werden und somit die implementation nicht gefunden wird.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: BCB: Was macht der Linker falsch?

  Alt 3. Feb 2008, 21:32
Bzw. einfach nur die entsprechende .LIB Datei nicht ins Projekt gezogen wurde...
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#7

Re: BCB: Was macht der Linker falsch?

  Alt 3. Feb 2008, 21:41
Zitat von SirThornberry:
die Meldung sagt doch alles. Die extern declaration ist vorhanden aber die Implementation wird nicht gefunden. Sowas tritt eigentlich immer dann auf wenn die entsprechenden C-Dateien nicht mit gelinkt werden und somit die implementation nicht gefunden wird.
Ich hab' ja für das Package nur eine einzige C-Datei und die wird mit gelinkt, sonst wären die Meldungen umfangreicher. Der Rest ist ja in den pas vorhanden und wird über die hpp beschrieben. Daraus werden dann vom Compiler die obj erstellt. Beim Linken werden die in der obj beschriebenen Funktionen in die exe gelinkt. So jedenfalls hab ich es verstanden. Um eine solche Meldung zu produzieren, muss es Abweichungen zwischen den beim Linken verwendeten Dateien geben, also nach meinem Verständnis zwischen hpp und obj.

Vielleicht kannst Du Deine Aussage ein wenig auf die verwendten Mechanismen bezogen erklären.

Grüße, Messie


OT: wir brauchen dringend noch ein , der genauso dumm guckt wie ich eben...
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: BCB: Was macht der Linker falsch?

  Alt 3. Feb 2008, 23:17
Wenn du die Pascal Quellen direkt einbindest und keine LIB dazu hast, dann muss der LIB Suchpfad mit auf das Verzeichnis gesetzt werden, wo auch die OBJ liegen. Wenn du aber eine LIB Datei mit den Pascal quellen hast, dann ziehe diese .LIB per Drag & Drop vom Explorer auf das Projekt im Projektmanager, um es hinzu zu fügen.

Compiler hat alles geschluckt, nur sucht nun der Linker nach dem Kompilat mit der Funktion, somit gib ihm entweder die .OBJ oder die .LIB (welche die einzelnen OBJ beinhaltet).
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#9

Re: BCB: Was macht der Linker falsch?

  Alt 27. Mär 2008, 17:30
Ich wollte das Ergebnis hier noch nachtragen:

Der mit BCB6 BCB X gelieferte Linker (ilink32.exe und ilink32.dll) ist fehlerhaft und muss durch ein Update ersetzt werden. Der Fehler tritt erst dann auf, wenn eine bestimmte Anzahl von gelinkten Komponenten überschritten wird. Dann geht gar nix mehr. Das wäre nicht so ein Problem, wenn das nur die Projekte betreffen würde. Üblicherweise überschreitet man die Grenze aber bei Kompilieren und Installieren von Komponenten zum ersten Mal.

Bei mir führte das dazu, dass die aufeinander aufbauenden Kompos (meist mit den TntTools unter der Haube) durch neues, fehlerhaftes Linken komplett Schrott waren. Also auch das Deinstallieren der zuletzt installierten Kompo hilft da nicht.

Ich habe beim Suchen keine Erklärung der Zusammenhänge gefunden und wollte das einfach nochmal dokumentieren. Vielleicht trägt noch jemand die Links zu den Artikeln nach...

Grüße, Messie
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz