只需要两个文件就可以让程序读取和写入PNG文件: lodepng.cpp和lodepng.h。项目中的其他文件只是示例、单元测试等等.
我将lodepng.h
、lodepng.cpp
和example_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
中定义的函数,它是使用#include "lodepng.h"
在example_encode.c
链接上给出的example_encode.c
文件顶部引用的,所以我不知道为什么会出现这个问题。
还有其他人经历过这个问题吗?
发布于 2014-08-24 22:34:36
听起来您需要将lodepng.c链接到示例程序,如下所示:
$ gcc -o example_encode lodepng.c example_encode.c
https://stackoverflow.com/questions/25476923
复制相似问题