【问题标题】:GraphicsMagick.NET missing CORE_RL_bzlib_.lib file, C++ linker error?GraphicsMagick.NET 缺少 CORE_RL_bzlib_.lib 文件,C++ 链接器错误?
【发布时间】:2015-12-04 18:38:20
【问题描述】:

我是一名长期的 V​​B 程序员,并且对 c# 非常擅长,但在 c++ 方面我却是个笨蛋。但尽管如此,如果可以的话,我需要为GraphicsMagick.NET 构建源代码,特别是.net 2.0,以尝试查看是否可以将其转换为完全托管的 dll,以便我可以将其导入 Unity3D(谁在乎为什么我需要构建它?)。

无论如何,如果不在这里发布整个项目,我意识到这里的任何人都可能很难确切地知道是什么导致了我的错误。但也许有人可以给出一个有根据的猜测?编辑:您可以从https://graphicsmagick.codeplex.com/SourceControl/latest 下载完整源代码的 zip,如果您想查看我正在使用的所有代码,这些代码会给我这个错误。

我认为,这个项目应该可以直接编译而没有错误。但事实并非如此。在 include.h 文件中有这行代码:

#        if defined(HasBZLIB)
#          pragma comment(lib, "CORE_RL_bzlib_.lib")
#        endif

由于这条邪恶的路线,我得到了这个邪恶的错误:

LNK1104 cannot open file 'CORE_RL_coders_.lib'
GraphicsMagick.NET.net20
C:\Users\A\Downloads\graphicsmagick-d\GraphicsMagick.NET.net20\LINK 1   

作为一名优秀的 VB 程序员,我广泛搜索了我的项目文件夹,发现 _.lib 文件不存在。但是在网上搜索的过程中,了解到c++在​​构建项目时有时会生成.lib文件。所以也许这个文件应该在它被链接之前首先被构建,但是由于某种原因它没有被首先构建?你可以看到我对 c++ 的无知。

当然,我注释掉了这一行。但随后它只会在下一行生成一个错误,即缺少另一个 .lib 文件。我假设它会在整个 include.h 文件中的每个 _.lib 文件上生成一个错误,并且它们的数量相当多。

为什么这个应该构建的项目缺少这么多 .lib 文件?谁能给出一个有根据的猜测为什么?我是否可能缺少该项目的作者在安装说明中忘记提及的一些依赖项?还是更有可能这些 .lib 文件应该由我以某种方式创建,而我只是没有正确构建它?

【问题讨论】:

  • 在我看来编译失败是因为找不到依赖项(hackage.haskell.org/package/bzlib 处的“bzlib”?)。等我可以自己编译的时候再回来看看。

标签: c++ unity3d linker graphicsmagick .lib


【解决方案1】:

GraphicsMagick 下的下载版本中有两个脚本文件,分别称为CopyLibsFromDropbox.cmdCopyLibsToDropbox.cmd,其中第一个包含

echo You can download the library files here: https://www.dropbox.com/sh/a8krszzmo76fqkt/AAAc9Jho29Jk3iLrKhsBmw-Ma?dl=0
goto done

在该保管箱中,您将找到所需的所有 lib 文件。以.zip 的形式下载整个内容并将其解压缩到\GraphicsMagick 目录中。现在应该是这样的:

一旦库位于该文件夹中,您就可以实际编译代码。如果您在上面的 Dropbox 下载页面选择“将其保存在我的 Dropbox 中”,则这些脚本用于将它们从本地 Dropbox 目录复制到此目录。最后,您应该会看到类似

3>  GraphicsMagick.NET.Web -> C:\Users\Maxi\Downloads\graphicsmagick-d1b5b1b28f26cdedf3ceeb555b94a87609286740\GraphicsMagick.NET.Web\bin\ReleaseQ16\x86\GraphicsMagick.NET.Web-x86.dll
3>  Codeanalysis is beeing executed...
3>  Codeanalysis finished -- 0 Errors, 0 Warning(s)
========== Build: 2 successfull, 0 failed, 0 recent, 1 skipped ==========

(谁在乎我为什么需要构建它?)

我愿意。您已经可以将托管 dll 包含到 Unity,GraphicsMagick.NET 已经为您提供了一个 .NET dll,您应该可以在 Unity 中使用它,或者您对此有什么特殊问题吗?需要该库中的一些图像处理功能?

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-08-11
  • 1970-01-01
  • 1970-01-01
  • 2020-09-10
  • 2015-01-18
  • 1970-01-01
  • 1970-01-01
  • 2013-06-30
相关资源
最近更新 更多