编译生成64位Libjpeg库
Posted cuijy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译生成64位Libjpeg库相关的知识,希望对你有一定的参考价值。
在使用OpenSenceGraph库时,用默认方法对库进行编译后,无法正常的读取jpeg格式的图片文件。通过研究发现,读取jpeg格式文件需要依赖第三方库libjpeg(http://gnuwin32.sourceforge.net/packages/jpeg.htm)。
从指向链接中下载好libjpeg库文件后,并在cmake程序中设置好JPEG_INCLUDE_DIR与JPEG_LIBRARY的路径后,打开工程文件,生成“Plugins jpeg”时,提示: error LNK2019: 无法解析的外部符号。 出现这个提示的原因是libjpeg库文件时32位的,而OpenSceneGraph库是64位。
为了解决这个问题,需要使用nmake工具生成一个64位的libjpeg库文件,步骤如下所示:
- 从http://www.ijg.org/网站中,下载libjpeg源代码。
- 将源代码文件夹中的jconfig.vc文件的文件名修改为jconfig.h
- 将源代码中的所有的"jconfig.vc"字符串修改为"jconfig.h" (用visual studio 中的替换功能)
- 在Everthing中查找64位的nmake.exe的路径,将本路径添加到环境变量的Path的值
- 在源代码文件夹内启动cmd(在代码文件夹中,按住shift再点击鼠标右键,在弹出的菜单中选择"在此处打开命令行"),运行"nmake /f makefile.vc nodebug=1"命令。
- nmake在编译时可能会弹出一些提示,比如说找不到某个头文件或lib文件,如果遇到找不到头文件的提示,可以用Everthing查找这个文件的路径,在环境变量中添加一个"INCLUDE"变量,并将找到的路径添加到值中;如果遇到找不到lib文件的提示,同样可以用Everthing查找这个文件的路径,在环境变量中添加一个"Lib"变量,并将找到的路径添加到值中。
- 设置完环境变量后,要重启cmd
- 重复6 7步,应该可以编译成功。
- 编译完成后,在源代码文件夹中新建“Lib”和“include”文件夹,将编译生成的"libjpeg.lib"文件拷贝到lib文件夹中,将所有h文件拷贝到include文件夹中
- 完成了libjpeg的编译工作
晚上了libjpeg的编译工作后,再打开cmake,在JPEG_INCLUDE_DIR,JPEG_LIBRARY栏目下,添加对应的路径值,重新configure,Generate。最后打开OpenSceneGraph.sln工程文件,对Plugins jpeg重新生成,就可以生成osgdb_jpeg.dll等。OpenSceneGraph也可以正常的读取jpeg格式的文件
以上是关于编译生成64位Libjpeg库的主要内容,如果未能解决你的问题,请参考以下文章
windows7 64位机上,libjpeg-turbo的安装和使用