2016-03-10 11 views
6

Dopo aver creato un file di intestazione separato composto da librerie di boost, cerco di includere nel progetto esistente.LNK2038: rilevata mancata corrispondenza per 'boost_log_abi': valore 'v2s_mt_nt5' non corrisponde al valore 'v2s_mt_nt6'

Ma mostra il seguente errore:

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

so che progetto precedente funziona da Windows XP a corrente sistema operativo Windows (vale a dire) 10.

Ma ho letto i supporti boost di Windows XP.

Qual è il problema?

Come risolverlo?

Penso che il problema sia dovuto alla versione di Windows?

Per ulteriori informazioni, si prega di chiedere a me.

EDIT:
sto usando:
Compiler: msvc 10
versione Boost: 1,60
Visual Studio 2010

risposta

6

ho incontrato un problema simile dopo l'aggiornamento sia BOOST a 1.60 e Visual Studio al 2015.

Ho risolto cambiando/definendo la definizione _WIN32_WINNT nel preprocessore per essere 0x601 vice 0x501.

Sono abbastanza sicuro che questo significa ... supporto Win7 e maggiore vice XP.

+0

No. È necessario il supporto di Windows XP. Quindi, io uso boost 1.58 –

+0

Usando -D_WIN32_WINNT = 0x0600 risolto per me oggi. Usando la spinta 1.63.0. Penso che il progetto che sto compilando sia stato costruito molto tempo fa. – Stewart

1

Secondo me, ci sono due soluzioni per questo problema.

1)   Usa amplificare 1.58 invece di utilizzare spinta 1.60.
      [Nota:. Non è possibile utilizzare tutte le funzioni]

2)   In caso contrario è possibile estrarre i file in spinta 1.60 utilizzando il cmd:
      rilascio b2 definire = BOOST_USE_WINAPI_VERSION = 0x0501

Vedi qui per maggiori dettagli:
http://www.boost.org/users/history/version_1_60_0.html

1

C'è un'altra soluzione senza la modifica alla vecchia generazione.

è possibile utilizzare qualsiasi build di libreria Boost:

b2 link = statica runtime-link = static --toolset = msvc-10.0 = definire BOOST_USE_WINAPI_VERSION = 0x0500

E risolvere il mio problema quando ho usato MS Visual Stdio 2010. Puoi anche provare con questo.

+0

Sì. Hai ragione. L'ho già fatto. Ha funzionato per me. Comunque grazie. –

Problemi correlati