2012-03-09 12 views
6

stanno collegando SUOLO nella mia libreria, ma quando compilo ottengo questi errori di linker:suolo non collega correttamente

 
1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library 
1>libSOIL.lib(stb_image_aug.o) : error LNK2019: unresolved external symbol __alloca referenced in function _stbi_zlib_decode_noheader_buffer 
1>libSOIL.lib(image_helper.o) : error LNK2019: unresolved external symbol _sqrtf referenced in function _RGBE_to_RGBdivA2 

ho fatto collegamento libSOIL.lib nelle dipendenze da aggiungere.

risposta

5

Gli errori di simbolo non risolto, errore LNK2019, derivano dai simboli in libgcc.lib o un'altra implementazione di libreria standard (vedere here per le Opzioni di Microsoft) non collegata a. alloca e sqrtf sono entrambe funzioni di libreria standard.

Se non si effettua il collegamento a una libreria standard, collegarlo a uno aggiungendolo al percorso della libreria del linker.

Dall'avviso di avvertimento sopra LNK4098, è più probabile che si stia collegando a una libreria standard ma il linker non sa quale su caricare.

Consiglia argomenti linker per rendere questo problema andare via (dire al linker di scegliere una specifica libreria standard) sono/NODEFAULTLIB: "MSVCRT"/NODEFAULTLIB: "LIBCMT

Vedere i seguenti link per ulteriori informazioni e risorse.

+0

Hmm, aggiunta/NODEFAULTLIB: MSVCRT ha corretto l'avviso ma gli stessi errori sono ancora presenti. – Bumrang

7

Risolto errore.

Anche se sto utilizzando VC2010, ho creato le librerie VC8. Ho quindi aggiunto SOIL.lib anziché libSOIL.lib. Gli errori sono andati via.

+0

Stavo usando VC2012 (chiamato VC11) e ho elaborato anche la soluzione VC9. –

+0

Stavo usando VC2013 e la soluzione di costruzione VC8 funzionava – PALEN

4

ho avuto lo stesso problema (utilizzando Visual Studio 2013, con vc120 set di strumenti), ho risolto scaricando la libreria SUOLO dal sito ufficiale e, invece di rinominare libSOIL.a-SOIL.lib ho eseguito la soluzione VC8 all'interno della zip ufficiale (che crea tu il SOIL.lib) 'poi l'ho copiato nel mio progetto e i problemi sono andati via.

+1

Questo ha funzionato anche per me. VC8 invece di VC9 per VS 2013 – PALEN