我遇到了libharu的一个容易解决的问题,我问了here;但是不幸的是,当我解决第一个问题时,出现了第二个问题。
我在Windows 7中将Codeblocks IDE与GNU GCC C ++编译器(MingGW)结合使用。我编译了libharu.a,libpng.a和zlib.a,并将它们以正确的顺序链接到我的主项目中。因此,它可以很好地编译并创建我的.pdf
但是,当我添加

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
//Insert further code here...
}


在我的代码中,它给出了大量与libpng有关的错误,尤其是pngtest.c。当我简单地将“ int WINAPI WinMain(...)”与“ int main”互换时,一切正常(当然,除了它在终端中运行),并创建正确的.pdf文件。
我的日志文件:

C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x13b): undefined reference to `png_get_error_ptr'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x236): undefined reference to `png_create_read_struct'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x256): undefined reference to `png_set_error_fn'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x262): undefined reference to `png_create_info_struct'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x272): undefined reference to `png_create_info_struct'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x293): undefined reference to `png_set_read_fn'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x2b4): undefined reference to `png_set_read_status_fn'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x2c8): undefined reference to `png_read_info'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x314): undefined reference to `png_get_IHDR'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x33c): undefined reference to `png_get_PLTE'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x358): undefined reference to `png_get_rowbytes'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x368): undefined reference to `png_malloc'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x39c): undefined reference to `png_read_rows'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x3b7): undefined reference to `png_read_end'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x3cb): undefined reference to `png_free'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x3ef): undefined reference to `png_destroy_read_struct'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x54c): undefined reference to `png_set_PLTE'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x5a0): undefined reference to `png_set_IHDR'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x5bc): undefined reference to `png_set_read_status_fn'
C:\Libs\libpng-1.5.13\libpng.a(pngtest.o):pngtest.c:(.text+0x11d): undefined reference to `png_error'


谢谢您的帮助。

最佳答案

要在使用gcc时删除控制台,只需将-mwindows添加到链接器标志。
WinMain()是不必要的。

09-16 23:52