2016-06-28 3 views
0

Ich versuche, einen Code in VS2012 Update 4 zu erstellen. Ich brauche es in VS2012, da ich einen Thread einschließe .h-Datei, die ab VC11 existiert. Daher ist die DLL so konfiguriert, dass sie das VS 2012 (v110) -Plattform-Toolset verwendet. Anstatt nach der vc110-Version der Boost-Datei zu suchen, sucht VS nach lib-Dateien der Version vc100. Und wenn ich auf diese vc100 lib Dateien verlinke, gibt es immer noch den folgenden Fehler. Ich habe einen sauberen und wieder aufgebauten Fehler gemacht.Fehler LNK1104: Datei 'libboost_thread-vc100-mt-gd-1_42.lib' kann nicht in VS 2012 Update 4


Fehler LNK2038: Nichtübereinstimmung erkannt für '_MSC_VER': Wert '1600' entspricht nicht Wert '1700' in client.obj


Gebrauchte sogar VC110-Boost-Dateien.

Toolset:

enter image description here

Libs:

enter image description here

Fehler:

enter image description here

Was sollte ich ändern, um dieses Build haben fehlerfrei?

Vielen Dank für Ihre Hilfe im Voraus.

+0

Sie müssen * alles * neu erstellen, einschließlich der statischen Bibliotheken, die Sie verknüpfen. –

+0

Ich habe keine andere lib/dll im Projekt enthalten. Ich habe eine saubere Lösung gemacht und alles neu aufgebaut. Ich habe sogar das ganze Projekt neu erstellt. Es fragt immer noch nach 'libboost_thread-vc100-mt-gd-1_42.lib'. Mein Plattform-Toolset ist auf v110. – ras

Antwort

0

Sie müssen die VC110-Boost-Bibliothek mit Ihrer Anwendung verknüpfen. Konvertieren der Boost-Bibliothek in VS2012 (VC110)

+0

aber die erste Fehlermeldung sucht nach vc100? – ras

+0

Werfen Sie einen Blick auf diesen Link http://stackoverflow.com/questions/12398809/c-boost-filesystem-mismatch-detected-for-msc-ver-value-1700-doesnt –

+0

Ich hatte das gesehen. Dort sind 2 Fehlermeldungen. Der erste gibt an, dass er nach der Datei libboost_filesystem-vc100-mt-gd-1_51.lib sucht, was bedeutet, dass er eine Boost-Lib-Build benötigt, die VS2010 verwendet, wie von vc100 angegeben. In 2. Fehlermeldung "Wert 1700 passt nicht zu 1600" und ich glaube, 1600 ist für vc100. Aber in meinem Fall geben die Fehlermeldungen an, dass er nach vc100 sucht, und ich habe es bereitgestellt. Korrigiere mich, wenn ich falsch liege. Ich selbst versuche zu verstehen, warum es ein Missverhältnis gibt. Sollte der Fehler nicht darin bestehen, nach der lib-Dateiversion vc110 anstatt nach vc100 zu suchen? – ras

0

Boost-Bibliothek, die für VS2010 gebaut wurde, kann nicht mit VS2012 verwendet werden. Wenn Sie die Boost-Bibliothek für VS2012 bereits erstellt haben, können Sie den Pfad zu dieser Bibliothek in Ihrem Projekt angeben: properties->Configuration->Linker->General. Ändern Sie auch den Include-Verzeichnispfad von . Andernfalls müssen Sie die Bibliothek für VS2012 erstellen und verwenden.

Stellen Sie außerdem sicher, dass der Pfad der Boost-Bibliothek in properties->Configuration properties->VC++ Directories der richtige ist.

+0

Ich habe den Boost bereits aufgebaut und in das Projekt aufgenommen. Aber die Fehlermeldung gibt an, dass sie nach lib sucht, die für vc100 erstellt wurde. – ras

+0

Hast du Boost mit VS2012 aufgebaut?Bist du dir sicher? Und hast du deinen Linker-Pfad überprüft? – Jackzz

+0

Fyi, ich habe einen Screenshot der lib-Datei hinzugefügt, die ich zum Projekt hinzugefügt habe. Hast du vorher Boost benutzt? – ras

Verwandte Themen