編譯生成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格式的文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM