使用JPEG 官方解码库时出现的问题:
使用example.c 接口编译时:
1.错误
ubuntu:/mnt/hgfs/GZ1961/linux系统文件IO/day15/newjpeg$ gcc main.c example.c -o main
example.c:3:21: fatal error: jpeglib.h: No such file or directory
compilation terminated.
找不到 jpeglib.h 头文件!!
-I 指定头文件所在的路径
例子:
-I./jpeglib/include 指定头文件在当前目录下的 jpeglib -》 include
2.错误
/tmp/ccsvzKt4.o: In function `read_JPEG_file':
example.c:(.text+0xad): undefined reference to `jpeg_std_error'
找不到JPEG 解码库接口
-L
-l //指定库的路径与库的名字
例子:
-L./jpeglib/lib -ljpeg
最终的编译命令:
arm-linux-gcc main.c example.c -o main -I./jpeglib/include -L./jpeglib/lib -ljpeg
//JPEG 库解码的重点理解
cinfo.output_width : 图像宽度
cinfo.output_components : 图像位深
cinfo.output_height : 图像的高度
cinfo.output_scanline : 解码的当前行号
执行程序时出现下列错误:
[root/]#./main
./main: error while loading shared libraries: libjpeg.so.9: cannot open shared object file: No such file or directory
当前系统中没有对应的动态库。
解决方法: 1.使用静态编译,用静态库。
arm-linux-gcc -static main.c example.c -o main -I./jpeglib/include -L./jpeglib/lib -ljpeg
2.配置动态库文件
把所有JPEG 的库文件拷贝到 /lib 目录中 (开发板的LIB)