我在C中编写了一个程序来读取JPEG文件,如下所示
#include<stdio.h>
#include<jpeglib.h>
#include <stdlib.h>
#include <string.h>
int main()
{
struct jpeg_decompress_struct cinfo;
struct jpeg_error_mgr jerr;
int height,width,pixel_size;
FILE *infile = fopen("/home/dbsl/Desktop/Anu/index.jpg", "rb");
cinfo.err = jpeg_std_error(&jerr);
jpeg_create_decompress(&cinfo);
jpeg_stdio_src(&cinfo, infile);
jpeg_read_header(&cinfo, TRUE);
jpeg_start_decompress(&cinfo);
width = cinfo.output_width;
height = cinfo.output_height;
pixel_size = cinfo.output_components;
printf("Width = %d",width);
printf("height = %d",height);
return(1);
}
该程序在Fedora20上成功编译。但是当运行执行文件时,它会出现以下错误:
./ a.out:加载共享库时出错:libjpeg.so.9:无法打开共享对象文件:没有这样的文件或目录
我不明白这是什么问题。
答案 0 :(得分:0)
您的程序使用共享库( libjpeg.so.9 )。运行程序时,此库由ld.so(8)
加载。因此,您必须在ld.so(8)
尝试找到该文件的位置使用此文件。
请参阅man ld.so
以查看此文件的放置位置(默认路径为 / lib 和 / usr / lib )。