根据README file at the Github repository for LodePNG:
只需要两个文件即可让程序读写PNG文件:lodepng.cpp和lodepng.h。项目中的其他文件只是示例,单元测试等......
我已将lodepng.h
,lodepng.cpp
和example_encode.c
保存到我的工作文件夹,按照指示将lodepng.cpp
重命名为lodepng.c
,然后尝试运行{{1} }}。我受到了大量错误的欢迎:
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'
中定义的函数,这些函数使用Github链接上给出的lodepng.h
文件顶部的#include "lodepng.h"
引用,所以我可以弄清楚为什么会出现这个问题。
还有其他人遇到过这个问题吗?
答案 0 :(得分:2)
听起来你需要将lodepng.c与示例程序联系起来,如下所示:
$ gcc -o example_encode lodepng.c example_encode.c