我已经编译了libpng
使用 64 位 x86_64-w64-mingw32-gcc 编译器,并libpng
使用在 64 位 windows 7 平台上编译的 Visual c++ 编写了一个包装器,并使用以下附加库来构建包装器(即 libpng、libzlib、 libgcc)。当我尝试运行可视化 c++ 包装器时,出现以下错误。请任何人帮我解决这个问题。
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
然后我创建了 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.lib 的可视化 C++ 静态库。并成功创建了静态库 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