Linker error “symbole externe non résolu __imp___iob_func” dans libpng.lib

Je suis en train de compiler libpng pour Windows Mobile 6, mais je kep l'obtention des erreurs d'édition de liens:

error LNK2019: unresolved external symbol __imp___iob_func referenced in function png_default_error libpng.lib
error LNK2019: unresolved external symbol __imp_abort referenced in function png_longjmp

Compilation se fait avec /MD en option, même entre mon projet principal. zlib et libpng.

Quand /MT est utilisé au lieu de cela, il y a encore des erreurs, mais légèrement différente:

error LNK2019: unresolved external symbol __iob_func referenced in function png_default_error
error LNK2019: unresolved external symbol abort referenced in function png_longjmp

Qui amène plusieurs questions.

  1. Quels sont __imp___iob_func et __imp_abort?
  2. Où sont-ils mis en œuvre? Sinon, comment peut une référence en être exclus?

Mon libpng options du compilateur:

/Od /I "..\lib\zlib-1.2.7" /I "..\lib\lpng1512" /D "_DEBUG" /D "_WIN32_WCE=0x502" /D "UNDER_CE" /D "WIN32_PLATFORM_PSPC" /D "WINCE" /D "DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "LIBPNG_EXPORTS" /D "ARM" /D "_ARM_" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /MDd /fp:fast /GR- /Fo"Windows Mobile 6 Professional SDK (ARMV4I)\Debug/" /Fd"Windows Mobile 6 Professional SDK (ARMV4I)\Debug/vc80.pdb" /W3 /nologo /c /Zi /TC /QMFPE-

bibliothécaire options:

/OUT:"Windows Mobile 6 Professional SDK (ARMV4I)\Debug\libpng.lib" /LIBPATH:"C:\Program Files\Windows Mobile 6 SDK\PocketPC\Lib\Armv4i" /NOLOGO /NODEFAULTLIB Coredll.lib /SUBSYSTEM:WINDOWSCE,5.02

Mon projet (libpngStreamWrap) options du compilateur:

/Od /I "..\lib\lpng1512" /D "_DEBUG" /D "_WIN32_WCE=0x502" /D "UNDER_CE" /D "WIN32_PLATFORM_PSPC" /D "WINCE" /D "DEBUG" /D "_LIB" /D "ARM" /D "_ARM_" /D "_UNICODE" /D "UNICODE" /D "_WINDLL" /Gm /EHsc /MDd /fp:fast /GR- /Yu"stdafx.h" /Fp"Windows Mobile 6 Professional SDK (ARMV4I)\Debug/libpngStreamWrap.pch" /Fo"Windows Mobile 6 Professional SDK (ARMV4I)\Debug/" /Fd"Windows Mobile 6 Professional SDK (ARMV4I)\Debug/vc80.pdb" /W3 /nologo /c /Zi /TP

options du linker:

/OUT:"Windows Mobile 6 Professional SDK (ARMV4I)\Debug\libpngStreamWrap.dll" /NOLOGO /DLL /MANIFEST:NO /NODEFAULTLIB:"oldnames.lib" /DYNAMICBASE /NXCOMPAT /ERRORREPORT:PROMPT coredll.lib corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib "..\libpng\windows mobile 6 professional sdk (armv4i)\debug\libpng.lib" "..\zlib\windows mobile 6 professional sdk (armv4i)\debug\zlib.lib"  /SUBSYSTEM:WINDOWSCE,5.02 /VERBOSE:lib
Ils sont des fonctions qui sont importés à partir de la DLL de la version de la bibliothèque runtime C. L'obtention de l'éditeur de liens erreurs pour eux indiquent que libpng a été compilé mal. Mauvais fichiers d'en-tête ou de mauvaise configuration du compilateur (/MT vs /MD en option). Reconstruire libpng et s'assurer que tous les paramètres du compilateur correspond à votre projet principal.
Posté erreurs avec les deux /MT et /MD options.
Vous pouvez poster votre compilateur et l'éditeur de liens de lignes de commande?
Options de ligne de commande affiché

OriginalL'auteur Srv19 | 2012-10-17