根据README file at the Github repository for LodePNG
程序只需要两个文件就可以读写PNG文件:lodepng.cpp和lodepng.h。项目中的其他文件只是示例、单元测试等。。。
我将lodepng.hlodepng.cppexample_encode.c保存到我的工作文件夹中,按照指示将lodepng.cpp重命名为lodepng.c,并尝试运行example_encode.c。我遇到了许多错误:

C:\Users\Peter\AppData\Local\Temp\ccqdyxic.o:example_encode.c:(.text+0x30): undefined reference to `lodepng_encode32_file'
C:\Users\Peter\AppData\Local\Temp\ccqdyxic.o:example_encode.c:(.text+0x43): undefined reference to `lodepng_error_text'
C:\Users\Peter\AppData\Local\Temp\ccqdyxic.o:example_encode.c:(.text+0x98): undefined reference to `lodepng_encode32'
C:\Users\Peter\AppData\Local\Temp\ccqdyxic.o:example_encode.c:(.text+0xb5): undefined reference to `lodepng_save_file'
C:\Users\Peter\AppData\Local\Temp\ccqdyxic.o:example_encode.c:(.text+0xc5): undefined reference to `lodepng_error_text'
C:\Users\Peter\AppData\Local\Temp\ccqdyxic.o:example_encode.c:(.text+0x127): undefined reference to `lodepng_state_init'
C:\Users\Peter\AppData\Local\Temp\ccqdyxic.o:example_encode.c:(.text+0x15e): undefined reference to `lodepng_encode'
C:\Users\Peter\AppData\Local\Temp\ccqdyxic.o:example_encode.c:(.text+0x18a): undefined reference to `lodepng_save_file'
C:\Users\Peter\AppData\Local\Temp\ccqdyxic.o:example_encode.c:(.text+0x1a0): undefined reference to `lodepng_error_text'
C:\Users\Peter\AppData\Local\Temp\ccqdyxic.o:example_encode.c:(.text+0x1c6): undefined reference to `lodepng_state_cleanup'

所有的错误都是引用lodepng.h中已经定义的函数,该函数是使用Github链接中给定的#include "lodepng.h"文件顶部的example_encode.c引用的,所以我无法理解它为什么会有这个问题。
还有人经历过这个问题吗?

最佳答案

听起来您需要将lodepeng.c与示例程序链接起来,如下所示:

$ gcc -o example_encode lodepng.c example_encode.c

10-08 00:00