【发布时间】:2015-12-04 18:38:20
【问题描述】:
我是一名长期的 VB 程序员,并且对 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