2016-03-10 1 views
6

Nach dem Erstellen einer separaten Header-Datei, die aus Boost-Bibliotheken besteht, versuche ich in das vorhandene Projekt aufzunehmen.LNK2038: Diskrepanz für 'boost_log_abi' erkannt: Wert 'v2s_mt_nt5' stimmt nicht mit 'v2s_mt_nt6' überein

Aber es zeigt die folgende Fehlermeldung:

:: Error 15 error LNK2038: mismatch detected for 'boost_log_abi': 
value 'v2s_mt_nt5' doesn't match value 'v2s_mt_nt6' in BoostLogger.obj 
E:\Projects\native\dcnotificationserver\loggerutil.obj :: 

Ich weiß, dass die bisherigen Projektarbeiten von Windows XP auf aktuelle Windows-Betriebssystem (d) 10.

Aber ich lese, dass Boost unterstützt von Windows XP.

Was ist das Problem?

Wie löst man es?

Ich denke, das Problem aufgrund der Windows-Version?

Für weitere Informationen, bitte fragen Sie mich.

EDIT:
Ich verwende:
Compiler: msvc 10
Boost-Version: 1.60
Visual Studio 2010

Antwort

6

ich ein ähnliches Problem aufgetreten, nachdem beide BOOST bis 1,60 und Visual Studio Upgrade bis 2015.

Ich löste es durch Ändern/Definieren der _WIN32_WINNT Definition im Präprozessor zu 0x601 Vice 0x501.

Ich bin mir ziemlich sicher, das bedeutet ... Unterstützung Win7 und Vice XP.

+0

Nein. Es muss von Windows XP unterstützt werden. Also, ich verwende Boost 1.58 –

+0

Mit -D_WIN32_WINNT = 0x0600 reparierte es für mich heute. Verwenden von Boost 1.63.0. Ich denke, das Projekt, das ich zusammenstelle, wurde vor langer Zeit gebaut. – Stewart

1

Laut mir gibt es zwei Lösungen für dieses Problem.

1)   Verwendung 1,58 steigern statt boost 1,60 der Verwendung.
      [Anmerkung:. Sie können nicht neuesten Funktionen nutzen]

2)   Ansonsten können Sie die Dateien im Boost 1.60 extrahieren, indem die cmd:
      b2 Release definieren = BOOST_USE_WINAPI_VERSION = 0x0501

sehen Sie hier für weitere Informationen:
http://www.boost.org/users/history/version_1_60_0.html

1

Es gibt eine andere Lösung, bei der sich die alte Version geändert hat.

Sie können jede beliebige Version von Boost-Bibliothek verwenden:

b2 link = statisch runtime-link = statisch --toolset = msvc-10.0 definieren = BOOST_USE_WINAPI_VERSION = 0x0500

Es ist mein Problem zu lösen, wenn ich verwendet MS Visual Stdio 2010. Sie können auch mit diesem versuchen.

+0

Ja. Du hast recht. Ich habe es schon getan. Es hat für mich funktioniert. Trotzdem danke. –