编译生成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库文件,步骤如下所示:
  1. http://www.ijg.org/网站中,下载libjpeg源代码。
  2. 将源代码文件夹中的jconfig.vc文件的文件名修改为jconfig.h
  3. 将源代码中的所有的"jconfig.vc"字符串修改为"jconfig.h" (用visual studio 中的替换功能)
  4. 在Everthing中查找64位的nmake.exe的路径,将本路径添加到环境变量的Path的值
  5. 在源代码文件夹内启动cmd(在代码文件夹中,按住shift再点击鼠标右键,在弹出的菜单中选择"在此处打开命令行"),运行"nmake /f makefile.vc nodebug=1"命令。
  6. nmake在编译时可能会弹出一些提示,比如说找不到某个头文件或lib文件,如果遇到找不到头文件的提示,可以用Everthing查找这个文件的路径,在环境变量中添加一个"INCLUDE"变量,并将找到的路径添加到值中;如果遇到找不到lib文件的提示,同样可以用Everthing查找这个文件的路径,在环境变量中添加一个"Lib"变量,并将找到的路径添加到值中。
  7. 设置完环境变量后,要重启cmd
  8. 重复6 7步,应该可以编译成功。
  9. 编译完成后,在源代码文件夹中新建“Lib”和“include”文件夹,将编译生成的"libjpeg.lib"文件拷贝到lib文件夹中,将所有h文件拷贝到include文件夹中
  10. 完成了libjpeg的编译工作
晚上了libjpeg的编译工作后,再打开cmake,在JPEG_INCLUDE_DIR,JPEG_LIBRARY栏目下,添加对应的路径值,重新configure,Generate。最后打开OpenSceneGraph.sln工程文件,对Plugins jpeg重新生成,就可以生成osgdb_jpeg.dll等。OpenSceneGraph也可以正常的读取jpeg格式的文件

 

以上是关于编译生成64位Libjpeg库的主要内容,如果未能解决你的问题,请参考以下文章

linux Red Hat 64位安装oracle时报错

windows7 64位机上,libjpeg-turbo的安装和使用

win10--vs2015--libjpeg--64位库的编译过程记录

Windows 7 编译64位boost库

Linux应用开发-libjpeg库交叉编译与使用

Linux应用开发-libjpeg库交叉编译与使用