使用libjpeg时未定义的jpeg_CreateDecompress()错误引用

nad*_*eem 2 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
Run Code Online (Sandbox Code Playgroud)

当我尝试这个简单的代码来解压缩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;
}
Run Code Online (Sandbox Code Playgroud)

Bil*_*ily 9

同样的问题让我大约两天!

我的解决方案是使用:

gcc your_code.c -ljpeg
Run Code Online (Sandbox Code Playgroud)

代替:

gcc -ljpeg your_code.c
Run Code Online (Sandbox Code Playgroud)

编译你的代码.

这里是解释:为什么库链接的顺序有时会导致GCC错误?

希望这会有所帮助.