建筑与建筑将FreeImage与Visual Studio Express 2013链接

时间:2014-01-13 07:31:45

标签: c++ visual-studio-2013 visual-studio-express freeimage

我在将我的项目与FreeImage库与VSE 2013链接时遇到了很多麻烦

我已经按照VS2010的这个答案无济于事:Linking FreeImage as a static library in VS2010?

调用FreeImage函数时,我收到了LNK2019错误。

我像任何图书馆一样链接了图书馆。以下是我做的以下步骤:

  1. 下载FreeImage Source。

  2. 打开2008解决方案(转换为2013年)并将所有项目的代码生成更改为/ MDd

  3. 尝试构建项目但由于某种原因未定义min / max函数所以我将algorithm.h包含在那些文件中并停止了这些错误。

  4. 尝试构建项目时出现错误:“无法打开”afxres.h“。所以我按照另一个主题的建议将afxres.h与windows.h交换。

  5. 建立项目 - >成功

  6. 将Fresh FreeImaged.lib复制到我的项目

    • 将目录添加到“其他库目录”
    • 在链接器
    • 下为其他依赖项添加了FreeImaged.lib
  7. 将FreeImaged.dll复制到我正在构建.exe的调试文件夹

  8. 将FreeImage.h添加到项目中

  9. 在包含标题

  10. 之前添加了#define FREEIMAGE_LIB
  11. 尝试构建我的项目 - >到处都是LNK2019。

  12. 如果有人能够在VS2013上构建FreeImage并且可以分享他们是如何做到的,我会非常感激,或者如果有人有任何建议。

3 个答案:

答案 0 :(得分:3)

您遇到麻烦的原因是,在Visual Studio 2013中引入了一些与C ++ 11一致性相关的重大更改(as outlined by Microsoft)。

其中一个包括为了使用 std :: min()/ std :: max(),您现在必须包含标题 。这也涉及FreeImage。不幸的是,直到版本3.6.1(截至今天的最新版本),这还没有修复。

这个blog post解释了为了编译它需要做些什么。最相关的部分是:

  

具体来说,您需要添加

     

include <algorithm>

     

到以下文件:

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

答案 1 :(得分:0)

我可以通过进入Configuration Manager取消选中FreeImage并检查构建中的FreeImageLib来实现此功能。同样禁用整个程序优化似乎使二进制大小更正常,并在链接时消除警告。

我知道这个问题超过一年了。只是为任何人提供答案谷歌像我一样搜索这个问题。

答案 2 :(得分:0)

版本:FreeImage3170Win32Win64.zip

os.env。:win7 64bit 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:我只是在Include目录和库中添加一个新条目 目录和FreeImage.lib到Linker-&gt;在Visual Studio中输入而不重建FreeImage库 :)
  • PS1:错误LNK2019在我添加FreeImage / Dist / x64选项时出现 ;((不知道这个)

也许这会有所帮助:)