Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

ByteJunkie

Alter Hase

  • »ByteJunkie« ist der Autor dieses Themas

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

1

18.02.2017, 10:14

Tribase Release Problem

Hallo,

ich poste einfach mal das Problem mit der Releaserstellung:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1>------ Erstellen gestartet: Projekt: TriBase, Konfiguration: Release Win32 ------
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(E:\CPP10\TriBase\.\Release\TriBase.dll) entspricht nicht dem OutputFile-Eigenschaftswert (E:\CPP10\MysteryOutback\TriBase.dll) von Linker. Das Projekt wird daher möglicherweise nicht ordnungsgemäß erstellt. Damit dieses Problem behoben werden kann, müssen die Eigenschaftswerte für $(OutDir), $(TargetName) und $(TargetExt) dem in %(Link.OutputFile) angegebenen Wert entsprechen.
1>strmbased.lib(wxutil.obj) : error LNK2005: "public: __thiscall CCritSec::CCritSec(void)" (??0CCritSec@@QAE@XZ) ist bereits in tbVideo.obj definiert.
1>strmbased.lib(wxutil.obj) : error LNK2005: "public: __thiscall CCritSec::~CCritSec(void)" (??1CCritSec@@QAE@XZ) ist bereits in tbVideo.obj definiert.
1>strmbased.lib(wxutil.obj) : error LNK2005: "public: void __thiscall CCritSec::Lock(void)" (?Lock@CCritSec@@QAEXXZ) ist bereits in tbVideo.obj definiert.
1>strmbased.lib(wxutil.obj) : error LNK2005: "public: void __thiscall CCritSec::Unlock(void)" (?Unlock@CCritSec@@QAEXXZ) ist bereits in tbVideo.obj definiert.
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __heap_alloc ist bereits in LIBCMT.lib(malloc.obj) definiert.
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __recalloc ist bereits in LIBCMT.lib(recalloc.obj) definiert.
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __msize ist bereits in LIBCMT.lib(msize.obj) definiert.
1>LIBCMTD.lib(dbghook.obj) : error LNK2005: __crt_debugger_hook ist bereits in LIBCMT.lib(dbghook.obj) definiert.
1>LIBCMTD.lib(isctype.obj) : error LNK2005: __isctype_l ist bereits in LIBCMT.lib(isctype.obj) definiert.
1>LIBCMTD.lib(isctype.obj) : error LNK2005: __isctype ist bereits in LIBCMT.lib(isctype.obj) definiert.
1>     Bibliothek ".\Lib\TriBase.lib" und Objekt ".\Lib\TriBase.exp" werden erstellt.
1>LINK : warning LNK4098: Standardbibliothek "LIBCMTD" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
1>..\MysteryOutback\TriBase.dll : fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Im Debug Modus wird das einfach ignoriert und als Warnung rausgegeben. Im Release Mode wird es als Fehler behandelt.
Ich finde keine Funktion CCritSec in tbVideo und wo in den Linkereinstellungen ich /NODEFAULTLIB:Bibliothek verwenden soll weiß ich auch nicht.
Es gibt da wohl 2 Einstellungen für Standard Bibliotheken.

Irgendwie weiß ich nicht so recht, wie ich damit umgehen soll.
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

ByteJunkie

Alter Hase

  • »ByteJunkie« ist der Autor dieses Themas

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

2

18.02.2017, 10:29

Bin schon wieder etwas weiter. Jetzt kommt nur noch das hier:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
1>------ Erstellen gestartet: Projekt: TriBase, Konfiguration: Release Win32 ------
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(E:\CPP10\TriBase\.\Release\TriBase.dll) entspricht nicht dem OutputFile-Eigenschaftswert (E:\CPP10\MysteryOutback\TriBase.dll) von Linker. Das Projekt wird daher möglicherweise nicht ordnungsgemäß erstellt. Damit dieses Problem behoben werden kann, müssen die Eigenschaftswerte für $(OutDir), $(TargetName) und $(TargetExt) dem in %(Link.OutputFile) angegebenen Wert entsprechen.
1>strmbased.lib(wxutil.obj) : error LNK2005: "public: __thiscall CCritSec::CCritSec(void)" (??0CCritSec@@QAE@XZ) ist bereits in tbVideo.obj definiert.
1>strmbased.lib(wxutil.obj) : error LNK2005: "public: __thiscall CCritSec::~CCritSec(void)" (??1CCritSec@@QAE@XZ) ist bereits in tbVideo.obj definiert.
1>strmbased.lib(wxutil.obj) : error LNK2005: "public: void __thiscall CCritSec::Lock(void)" (?Lock@CCritSec@@QAEXXZ) ist bereits in tbVideo.obj definiert.
1>strmbased.lib(wxutil.obj) : error LNK2005: "public: void __thiscall CCritSec::Unlock(void)" (?Unlock@CCritSec@@QAEXXZ) ist bereits in tbVideo.obj definiert.
1>     Bibliothek ".\Lib\TriBase.lib" und Objekt ".\Lib\TriBase.exp" werden erstellt.
1>..\MysteryOutback\TriBase.dll : fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
»ByteJunkie« hat folgendes Bild angehängt:
  • VC2010.jpg
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

ByteJunkie

Alter Hase

  • »ByteJunkie« ist der Autor dieses Themas

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

3

18.02.2017, 11:16

Ich hab erst mal die tbVideo rausgeschmissen. Ist zwar nicht die eleganteste Lösung, aber so lässt sich die Tribase Release wenigstens erstellen. :D
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

4

18.02.2017, 17:08

Wenn ich die Warnung (vielleicht entstehen die Fehler durch das Problem, welches in der Warnung beschrieben wird) richtig interpretiere, passt daa Ziel-Verzeichnis nicht zum Ausgabe-Verzeichnis. Das kann man im Eigenschaftsblatt (Der Link zum Eigenschaftsblatt steht in der Warnung) ändern.
Ich kann das nicht testen (da ich nicht den gleichen Fehler habe) und es ist auch nur eine Vermutung.
Albert Einstein sagte: "2 Stunden mit einem netten Mädchen fühlen sich an wie 20 Minuten, 20 Minuten auf einem heißen Ofen fühlen sich an wie 2 Stunden. - Das ist Relativität"

ByteJunkie

Alter Hase

  • »ByteJunkie« ist der Autor dieses Themas

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

5

18.02.2017, 17:11

Danke Patrick,

aber das Verzeichnis ist nur eine Warnung, kein Fehler, und nicht das eigentliche Problem.

Grüße
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

6

18.02.2017, 17:19

Wie gesagt, es ist nur eine Vermutung und nachdem daruf hingwiesen wird (in der Warnung), dass dadurch das Projekt nicht korrekt erstellt werden kann, dachte ich, dass das etwas damit zu tun haben könnte.
Albert Einstein sagte: "2 Stunden mit einem netten Mädchen fühlen sich an wie 20 Minuten, 20 Minuten auf einem heißen Ofen fühlen sich an wie 2 Stunden. - Das ist Relativität"

Werbeanzeige