gpt4 book ai didi

c++ - Libharu 使用 windows.h 创建有关 pngtest.c 的错误

转载 作者:太空宇宙 更新时间:2023-11-04 14:11:04 27 4
gpt4 key购买 nike

我遇到了一个很容易解决的问题,我问了 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() 不是必需的。

关于c++ - Libharu 使用 windows.h 创建有关 pngtest.c 的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14307188/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com