2014-01-13 28 views
1

我遇到了很多麻煩連接我與FreeImage的庫項目與VSE 2013建築鏈接的FreeImage與Visual Studio Express的2013

我已經按照這個答案VS2010無濟於事:Linking FreeImage as a static library in VS2010?

調用FreeImage函數時出現LNK2019錯誤。

我已經鏈接圖書館,就像我會任何圖書館。下面是我做的以下步驟:

  1. 下載FreeImage Source。

  2. 打開2008解決方案(換算成2013年),改變了代碼生成/ MDD所有項目

  3. 試圖建立的項目,但由於某種原因分鐘/沒有規定最大的功能所以我包括algorithm.h到這些文件並停止這些錯誤。

  4. 試圖建立的項目,我得到一個錯誤:「無法打開‘afxres.h’所以我換afxres.h與WINDOWS.H在另外一個話題建議

  5. 建項目 - 。 >成功

  6. 複製新鮮FreeImaged.lib對我的項目

    • 添加目錄 「附加庫目錄」
    • 新增FreeImaged.lib到其他在連接依賴
  7. 複製的FreeImaged.dll到.exe文件正在修建

  8. 新增FreeImage.h該項目包括頭前

  9. 新增的#define FREEIMAGE_LIB我debug文件夾

  10. 試圖建立我的項目 - > LNK2019s無處不在。

如果有人能夠建立的FreeImage在VS2013和可以分享他們是如何做它,我將不勝感激,或者如果任何人有任何建議。

+0

我有一樣的煩惱編譯Ogre3D ... FreeImage編譯好,但Ogre沒有鏈接它,LNK2019對FreeImage函數的每個引用。 –

回答

3

問題的原因是,在Visual Studio 2013中引入了與C++ 11一致性相關的一些突破性更改(as outlined by Microsoft)。

一個包括爲了使用的std ::分鐘()/的std :: MAX(),你現在有包含頭。這也涉及FreeImage。不幸的是,直到版本3.6.1(最新的截至今天),這還沒有被修復。

這個blog post解釋了你需要做什麼才能編譯它。最相關的部分是:

Specifically, you will need to add

include <algorithm>

to the following files:

Source/OpenEXR/IlmImf/ImfOutputFile.cpp 
Source/OpenEXR/IlmImf/ImfScanLineInputFile.cpp 
Source/OpenEXR/IlmImf/ImfTiledMisc.cpp 
Source/OpenEXR/IlmImf/ImfTiledOutputFile.cpp 
Source/OpenEXR/Imath/ImathMatrixAlgo.cpp 
+0

嗨,我做了這些更正嘗試和建立FreeImage靜態和它的工作。我; m也使用另一個答案建立FreeImage作爲靜態庫,也適用於VS2013:http://stackoverflow.com/questions/16186300/linking-freeimage-as-a-static-library-in-vs2010問題我我有最終庫文件的大小。調試版本(FreeImaged.lib)爲52.1MB,發行版本(FreeImage.lib)的大小爲驚人的99.7MB。這對你看起來合適嗎? – Rebirth

+0

這確實很大。使用VS2012我得到FreeImage.lib =〜20MB和FreeImage_d.lib〜49MB。但是這些大小可能取決於IDE /編譯器以及庫本身的不同編譯設置(我不確定我們在Ogre3D中是否只使用FreeImage庫的一個子集)。 –

0

我能得到這個通過進入配置管理器取消選中的FreeImage下建立檢查FreeImageLib工作。同樣,禁用整個程序優化似乎會使二進制大小更加正常,並且在鏈接時排除警告。

我知道這個問題已經過了一年多了。只是提供一個答案給任何人像我這樣的搜索這個問題。

0

版本:FreeImage3170Win32Win64.zip

os.env:WIN7 64位的VisualStudio ULTIMATE 2013

操作:

 1_ just unpacking the zip somewhere 
     e.g. (D:/library/FreeImage3170Win32Win64/FreeImage) 

    2_ in C/C++->General->Additional Including Directerories 
     add (D:/library/FreeImage3170Win32Win64/FreeImage/Dist/x32) 

    3_ in Linker->General->Additional Library Directerories 
     add (D:/library/FreeImage3170Win32Win64/FreeImage/Dist/x32) 

    4_ in Linker->Input->Additional Dependency 
     add (FreeImage.lib) 
  • PS0:我剛加入新條目包含目錄和Library 目錄和FreeImage.lib到鏈接器 - >在Visual Studio中輸入而不重建FreeImage庫 :)
  • PS1:LNK2019錯誤發生時,我加入了FreeImage的/距離/ x64的選項 ;((有沒有這個想法)

也許這有助於:)

相關問題