AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [BCB] Compilerdirektive wird nicht vom Linker erkannt
Thema durchsuchen
Ansicht
Themen-Optionen

[BCB] Compilerdirektive wird nicht vom Linker erkannt

Ein Thema von messie · begonnen am 5. Apr 2010 · letzter Beitrag vom 6. Apr 2010
Antwort Antwort
messie

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

[BCB] Compilerdirektive wird nicht vom Linker erkannt

  Alt 5. Apr 2010, 16:20
Moin,

ich habe einen solchen Konstrukt probiert

Code:
#ifdef DK
  #include "Texte_DK.h"
#elif defined (GER)
  #include "Texte_GER.h"
#elif defined (IT)
  #include "Texte_IT.h"
#endif
Das funktioniert aber nur zur Entwurfszeit bzw. nur mit dem Compiler. Die IDE springt z.B. in die korrekte Datei.
Nun werden aber alle defines vom Linker ignoriert, d.h. der findet gar nichts und erzählt mir von nicht auflösbaren externen Referenzen.

Wenn ich die Headerdateien jetzt ins Projekt aufnehme, sucht der Linker nur bis zum ersten Vorhandensein der Referenz, es kommt also immer dänisch raus

Wie kann ich dem Linker beibringen, welche Datei er verwenden soll?

Danke, Messie
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

Re: [BCB] Compilerdirektive wird nicht vom Linker erkannt

  Alt 6. Apr 2010, 00:49
Wenn kein Precompiler Symbol definiert ist, wird auch nichts included.
Deshalb sollte auch etwas im else-Teil stehen:
Code:
#ifdef DK
  #include "Texte_DK.h"
#elif defined (GER)
  #include "Texte_GER.h"
#elif defined (IT)
  #include "Texte_IT.h"
#else
  #include "Texte_EN.h" // default sprache
#endif
  Mit Zitat antworten Zitat
messie

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

Re: [BCB] Compilerdirektive wird nicht vom Linker erkannt

  Alt 6. Apr 2010, 08:23
Zitat von sx2008:
Wenn kein Precompiler Symbol definiert ist, wird auch nichts included.
Deshalb sollte auch etwas im else-Teil stehen:
Code:
#ifdef DK
  #include "Texte_DK.h"
#elif defined (GER)
  #include "Texte_GER.h"
#elif defined (IT)
  #include "Texte_IT.h"
#else
  #include "Texte_EN.h" // default sprache
#endif
Ja, aber das hilft mir nicht gegen den Linker.

Nochmal zur Struktur: meine Texte stehen in den genannten Dateien. Für jeden Text ist eine WideString-Variable deklariert, die zusätzlich im Header als extern bekanntgegeben wird. Möglicherweise steckt darin das Problem.

Also in der cpp-Datei
Code:
WideString ParametersText = (WideString)L"\x0050\x0061\x0072\x0061\x006D\x0065\x0074\x0072\x0065";
und in der dazugehörigen Headerdatei
Code:
extern WideString ParametersText;
Ist es vielleicht nicht korrekt, auf die Headerdatei zu verweisen? Das würde mein C-Verständnis etwas erschüttern

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 09:24 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