我已经使用64位x86_64-w64-mingw32-gcc编译器编译了libpng
,并且我已经使用在64位Windows 7平台中编译的visual C++编写了该包的libpng
,并使用以下附加库构建包装(即libpng,libzlib,libgcc)。在尝试运行visual C++包装器时出现以下错误。请任何人帮我解决这个问题。无法解析的外部符号mingw_getsp
unresolved external symbol mingw_getsp referenced in function read_png.
unresolved external symbol __strtod refernced in function png_handle_sCAL
我的包括文件是这样的
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define PNG_BYTES_TO_CHECK 4
#define OK 0
#define UNSUP_IMG_FMT -1
#define ERROR_FILE_READ -2
#define ERROR_CREATE_PNG_STRUCT -3
#define ERROR_CREATE_INFO_STRUCT -4
#define ERROR_SET_JMP -5
#define UNSUP_DEPTH -6
#define UNSUP_COLOR -7
#define UNSUP_INTRLC -8
#define UNSUP_HEIGHT_WIDTH -9
struct fakefile
{
unsigned char *ptr;
size_t lim;
};
int check_if_png(char*);
int check_if_pngbuffer(unsigned char *);
int read_png(char*,int*,int*,unsigned char**);
int read_pngbuffer(unsigned char*,int ,int*,int*,unsigned char **);
int write_png(char*,int,int,unsigned char*,int);
int write_pngbuffer(unsigned char**,int*,int,int,unsigned char*,int);
#ifdef __cplusplus
}
#endif /* __cplusplus */
一件事我已经为32位Windows XP能够正常工作
首先我编译zlib的,创造了libzlib这样做。 lib
x86_64-w64-mingw32-gcc -c *.c
x86_64-w64-mingw32-ar rcs libzlib.lib *.o
del *.o
然后我像这样创建了libpng
x86_64-w64-mingw32-gcc -I ../zlib -c *.c
x86_64-w64-mingw32-ar rcs libpng.lib *.o
del *.o
然后我用下面的图书馆中,我将尝试创建一个Visual C++静态库命名LSpng.lib创建pngreadwrite.c & pngreadwrite.h包装libpngrw.lib
x86_64-w64-mingw32-gcc -I ../zlib -c pngreadwrite.c
x86_64-w64-mingw32-ar rcs libpngrw.lib *.o
del *.o
。并成功创建了静态库LSpng。我在64位Windows机器上运行LSpng.lib时出现以下错误。
“error LNK2019: unresolved external symbol mingw_getsp referenced in function read_png”
“error LNK2001: unresolved external symbol mingw_getsp”
“error LNK2001: unresolved external symbol mingw_getsp”
“error LNK2019: unresolved external symbol __strtod referenced in function png_handle_sCAL”
LSpng.lib(pngreadwrite.o) : error LNK2001: unresolved external symbol mingw_getsp referenced in function read_png
LSpng.lib(pngread.o) : error LNK2001: unresolved external symbol mingw_getsp
LSpng.lib(pngread.o) : error LNK2001: unresolved external symbol mingw_getsp
LSpng.lib(pngrutil.o) : error LNK2019: unresolved external symbol __strtod referenced in function png_handle_sCAL
你忘记包含一些库吗? –
@ bash.d我包含libgcc库。如果有任何其他库需要加载 – Siva
请显示您的'#include's –