使用libjpeg时对jpeg\u CreateDecompress()的引用未定义错误

使用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图像时,我得到了标题

我安装了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图像时,我得到了标题中的错误

代码如下:

#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