Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Ingmar Mini JLI'ler
Anmeldedatum: 05.08.2003 Beiträge: 3
Medaillen: Keine
|
Verfasst am: 24.08.2003, 21:13 Titel: Versionen statischer Win32-Bibliotheken |
|
|
Zur Verbesserung der Übersichtlichkeit fasse ich thematisch zueinander gehörige Klassen in Bibliotheken zusammen. Um - wie bei der Verwendung der Windows- und DirectX-Bibliotheken - nur jeweils eine Version der Bibliotheken zu verwenden, muß diese sowohl zum Erstellen der Debug- als auch der Release-Version einer Anwendung geeignet sein.
Wenn beim Erstellen der Debug-Version einer Win32-Anwendung der Linker die Release-Version einer statischen Win32-Bibliothek einbindet, wird die Erstellung erfolglos abgebrochen.
Genauso im umgekehrten Fall, daß der Linker beim Erstellen der Release-Version der Anwendung die Debug-Version der Bibliothek einbindet.
In beiden Fällen wird der Konflikt zwischen Bibliotheken unterschiedlicher Konfigurationen (Debug oder Release) als Grund dafür angegeben.
Gibt es eine Möglichkeit, eine statische Win32-Bibliothek zu erstellen, die sowohl zum Erstellen der Debug- als auch der Release-Version einer Win32-Anwendung geeignet ist? |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 24.08.2003, 21:46 Titel: |
|
|
Zitat: |
Wenn beim Erstellen der Debug-Version einer Win32-Anwendung der Linker die Release-Version einer statischen Win32-Bibliothek einbindet, wird die Erstellung erfolglos abgebrochen.
Genauso im umgekehrten Fall, daß der Linker beim Erstellen der Release-Version der Anwendung die Debug-Version der Bibliothek einbindet. |
Was für eine Felhermeldung bekommst du denn? Bist du sicher, dass es mit Debug/Release-Version zu tun hat. Ich denke das sollte gehen. Hat das ev. was mit Single/Multithreaded Bibliotheken zu tun?
Davon abgesehen, ist es natürlich besser in einem Debug-Build gegen die Debug-Bibliotheken und im Release-Buidl gegen die Release-Bibliotheken zu linken. Visual C++ bietet da ja auch eien gute Unterstützung. Was spricht dagegen, z.B. unter Projekt->EInstellungen->Linker->Kategorie Eingabe einmal den Pfad zur Release und einmal zur Debug-Lib anzugeben?
Christian |
|
Nach oben |
|
|
Ingmar Mini JLI'ler
Anmeldedatum: 05.08.2003 Beiträge: 3
Medaillen: Keine
|
Verfasst am: 25.08.2003, 10:50 Titel: |
|
|
Dies sind die Fehlermeldungen, die nach Abbruch des Bindens im Ausgabebereich von Visual C++ angezeigt werden:
Code: | -----Konfiguration: usingLib - Win32 Debug-----
Kompilierung läuft...
USINGLIB.cpp
Linker-Vorgang läuft...
LINK : warning LNK4098: Standardbibliothek "LIBC" steht in Konflikt mit anderen Bibliotheken; /NODEFAULT:Bibliothek verwenden
-----Konfiguration: usingLib - Win32 Release-----
Kompilierung läuft...
USINGLIB.cpp
Linker-Vorgang läuft...
LINK : warning LNK4075: /EDITANDCONTINUE wird aufgrund der Angabe von /INCREMENTAL:NO ignoriert
LINK : warning LNK4098: Standardbibliothek "LIBCD" steht in Konflikt mit anderen Bibliotheken; /NODEFAULT:Bibliothek verwenden |
Natürlich ist es möglich in den Projekteinstellungen individuelle Pfade zu Debug- und Release-Versionen der Bibliotheken anzugeben. Da ich jedoch beabsichtige, meine Bibliotheken auch anderen Nutzern zur Verfügung zu stellen, wäre eine möglichst einfache Handhabung wünschenswert.
Es scheint zudem möglich zu sein, eine für beide Linkerprozesse geeignete Bibliothek zu erstellen. Die Win32-Bibliothekdateien scheinen beispielsweise in jeweils nur einer Konfiguration vorzuliegen, denn unter Extras>Optionen>Verzeichnisse ist ausschließlich der Pfad "Microsoft Visual Studio\VC98\LIB" voreingestellt. |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 25.08.2003, 11:00 Titel: |
|
|
Ich sehe bei dir nur Warnungen keine Fehler. |
|
Nach oben |
|
|
|