动态库中静态调用链接库libjpeg
2014-11-20 18:49
603 查看
前段时间在实际工作中遇到这样一个问题:
需要在linux下做一个动态链接库,需要具备jpeg解压功能,于是libjpeg是最好的选择;然而我们需求是要在没有安装libjpeg的机器上也能够运行起来,所以我们必须要静态的调用libjpeg。
在网上找了好久,都没有发现比较完整的介绍动态库中静态调用链接库LJPEG的文章,于是在这里稍微做个介绍,希望对需要的人有所帮助。
步骤如下:
1、我们需要下载libjpeg源代码,这个百度一下就能找到。
2、解压后cd到libjpeg目录在终端输入如下命令:
./configure --disable-shared
这样,加一个“--disable-shared”选项后,make的时候就只生成libjpeg.a文件而没有.so文件了,因为当动态库和静态库同时存在的时候系统会默认的调用动态链接库的。
3、修改libjpeg的makefile文件:
在makefile中找到“CFLAGS”项,在行末加上“-fPIC”
4、现在就可以编译libjpeg静态库了,直接输入命令:make;make install
5、在需要调用libjpeg的动态库源码的makefile.in文件中添加“-ljpeg”调用方式即可输入命令:./configure;make。
这样,我们就可以在自己的动态库中静态的加入libjpeg压缩和解压功能了,而且能够在没有安装libjpeg的机器上运行。
下面是几个关于libjpeg介绍的博客,可以参考下,写的蛮不错的:
http://blog.csdn.net/achellies/article/details/4238056 http://blog.chinaunix.net/uid-26544753-id-3049279.html
/article/8351763.html
需要在linux下做一个动态链接库,需要具备jpeg解压功能,于是libjpeg是最好的选择;然而我们需求是要在没有安装libjpeg的机器上也能够运行起来,所以我们必须要静态的调用libjpeg。
在网上找了好久,都没有发现比较完整的介绍动态库中静态调用链接库LJPEG的文章,于是在这里稍微做个介绍,希望对需要的人有所帮助。
步骤如下:
1、我们需要下载libjpeg源代码,这个百度一下就能找到。
2、解压后cd到libjpeg目录在终端输入如下命令:
./configure --disable-shared
这样,加一个“--disable-shared”选项后,make的时候就只生成libjpeg.a文件而没有.so文件了,因为当动态库和静态库同时存在的时候系统会默认的调用动态链接库的。
3、修改libjpeg的makefile文件:
在makefile中找到“CFLAGS”项,在行末加上“-fPIC”
4、现在就可以编译libjpeg静态库了,直接输入命令:make;make install
5、在需要调用libjpeg的动态库源码的makefile.in文件中添加“-ljpeg”调用方式即可输入命令:./configure;make。
这样,我们就可以在自己的动态库中静态的加入libjpeg压缩和解压功能了,而且能够在没有安装libjpeg的机器上运行。
下面是几个关于libjpeg介绍的博客,可以参考下,写的蛮不错的:
http://blog.csdn.net/achellies/article/details/4238056 http://blog.chinaunix.net/uid-26544753-id-3049279.html
/article/8351763.html
相关文章推荐
- 通过DLL路径,实现动态调用动态链接库中指定类的(静态)方法和属性
- linux编译同时链接静态和动态库
- gcc/g++ 静态动态库 混链接.
- 6.关于QT中的内存管理,动态的制作,动态库的调用,静态库的制作
- 6.关于QT中的内存管理,动态的制作,动态库的调用,静态库的制作
- 动态库调用方式 动态加载 静态加载
- 6.关于QT中的内存管理,动态的制作,动态库的调用,静态库的制作
- 如何让静态库中的可执行程序不调用的函数不链接进该可执行程序?(-ffunction-sections -Wl,--gc-sections)
- C++对dll链接库的显示(动态)调用和隐式(静态)调用
- gcc/g++ 静态动态库 混链接.
- 静态编译动态编译;静态链接动态链接;静态库和动态库
- C# 中静态调用C++动态链接
- 静态库和动态库链接那些事
- Linux下静态、动态库(隐式、显式调用)的创建和使用及区别
- android framework 添加Binder Services,链接动态库,以及使添加的Services与native双向调用
- Linux下动态库的生成及链接方法 ---傻瓜式调用啊
- 静态编译动态编译;静态链接动态链接;静态库和动态库
- 把静态库链接进so库中及C++调用C
- dedecms使用sql语句调用文章静态链接地址的方法
- dedecms使用sql语句调用文章静态链接地址的方法