(Perché sto cercando di farlo: non ho avuto fortuna nell'usare i binari precompilati per libpng su Windows (nonostante molte ore di tentativi ed errori), e quindi sto provando a compilarlo da solo.Ho trovato this helpful blog post riguardo a questo, completo con un file di progetto Microsoft Visual Studio 2008, ma purtroppo non è ancora stato in grado di usarlo.)Come evitare "errore LNK2005:" (funzioni stdlib già definite) durante la compilazione di libpng con Microsoft Visual Studio '08?
Compila con successo quando si collega al binario zlib trovato here, ma quando si tenta di collegarlo a un test File ricevo il seguente:
C:\Documents and Settings\Administrator\My Documents>cl "C:\Documents and Settin gs\Administrator\My Documents\test.c" "C:\Documents and Settings\Administrator\M y Documents\libpng.lib" -I "C:\Documents and Settings\Administrator\My Documents\include" Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. test.c Microsoft (R) Incremental Linker Version 9.00.30729.01 Copyright (C) Microsoft Corporation. All rights reserved. /out:test.exe test.obj "C:\Documents and Settings\Administrator\My Documents\libpng.lib" MSVCRTD.lib(MSVCR90D.dll) : error LNK2005: _abort already defined in LIBCMT.lib( abort.obj) MSVCRTD.lib(MSVCR90D.dll) : error LNK2005: _fread already defined in LIBCMT.lib( fread.obj) MSVCRTD.lib(MSVCR90D.dll) : error LNK2005: _malloc already defined in LIBCMT.lib (malloc.obj) MSVCRTD.lib(MSVCR90D.dll) : error LNK2005: _free already defined in LIBCMT.lib(f ree.obj) MSVCRTD.lib(MSVCR90D.dll) : error LNK2005: ___iob_func already defined in LIBCMT .lib(_file.obj) LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; u se /NODEFAULTLIB:library test.exe : fatal error LNK1169: one or more multiply defined symbols found
può fregare chiunque di fare luce su come risolvere questi errori?
Grazie! Ore di mal di testa risolti in 10 minuti :) – Sam
XD grazie: D [... almeno 15 caratteri] –
Che ... era assolutamente incredibile. Inoltre, idem, Sam. – tjklemz