使用libjpeg时对jpeg\u CreateDecompress()的引用未定义错误
我安装了libjpeg-dev,所有文件都在include文件夹中使用libjpeg时对jpeg\u CreateDecompress()的引用未定义错误,c,linux,libjpeg,C,Linux,Libjpeg,我安装了libjpeg-dev,所有文件都在include文件夹中 /usr/include/jerror.h /usr/include/jmorecfg.h /usr/include/jpegint.h /usr/include/jpeglib.h /usr/include/turbojpeg.h /usr/include/x86_64-linux-gnu /usr/include/x86_64-linux-gnu/jconfig.h 当我尝试用这个简单的代码解压jpeg图像时,我得到了标题
/usr/include/jerror.h
/usr/include/jmorecfg.h
/usr/include/jpegint.h
/usr/include/jpeglib.h
/usr/include/turbojpeg.h
/usr/include/x86_64-linux-gnu
/usr/include/x86_64-linux-gnu/jconfig.h
当我尝试用这个简单的代码解压jpeg图像时,我得到了标题中的错误
代码如下:
#include <stdlib.h>
#include <stdio.h>
#include <jpeglib.h>
int main(void){
struct jpeg_decompress_struct cinfo;
struct jpeg_error_mgr jerr;
cinfo.err = jpeg_std_error(&jerr);
jpeg_create_decompress(&cinfo);
return 0;
}
#包括
#包括
#包括
内部主(空){
结构jpeg\u解压缩\u结构cinfo;
结构jpeg\u错误\u管理器jerr;
cinfo.err=jpeg\u std\u error(&jerr);
jpeg\u创建\u解压缩(&cinfo);
返回0;
}
听起来像是链接错误
您可能没有链接到库代码;仅仅包含标题是不够的,这不是C的工作方式
在命令行上添加类似于
-ljpeg
的内容。同样的问题困扰了我大约两天
我的解决方案是使用:
gcc your_code.c -ljpeg
而不是:
gcc -ljpeg your_code.c
编译你的代码
解释如下:
希望这会有所帮助。我使用了这个版本的libjpeg-turbo8-dev