【问题标题】:Error with VS lib tool, "cannot open shared object file"VS lib 工具出错,“无法打开共享对象文件”
【发布时间】:2013-04-14 18:46:21
【问题描述】:

我没有太多在 Windows 下构建库的经验,而且我很难在网上找到信息,“lib”和“def”不是我期望的很好的搜索词。无论如何,我的问题如下所示;虽然.dll.lib 文件实际上是构建和安装的,但使用它们失败了,所以我想我最好解决这个问题。 lib 找不到的文件在目录exports 中,该目录是当前目录的子目录。当我尝试构建一个类似的库 (GotoBLAS) 时,也会发生同样的事情。

【问题讨论】:

  • 是什么让你认为加载 .def 文件失败?
  • @DavidHeffernan 我想我没有充分的理由,我只是抓住了这一点,因为它是命令行参数。我在想它在某种意义上是图书馆的一部分。相应地进行编辑。
  • 这就是发生的事情。尝试运行 lib.exe 失败,出现 Windows 错误 127 ERROR_PROC_NOT_FOUND。这意味着加载时间相关性无法解决,或者对GetProcAddress 的动态调用失败。因为您使用的是 cygwin,它试图将 Windows 消息转换为类似 unix 的内容,无法打开共享对象文件。 .def 文件是一个红鲱鱼。
  • 好吧,我会调查这个...
  • 嗯,你肯定需要一个真正的品牌。但肯定 mingw/msys 有这样的东西。 127不是找不到exe或dll。就是找不到dll中的函数。因此,很可能会选择错误版本的 dll。

标签: windows dll visual-studio-2012 cygwin static-libraries


【解决方案1】:

我知道这是几个月后的事,但我通过更改 PATH 上的 lib.exe 解决了这个问题。

您需要拥有“C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64"

希望对您(或发现此问题的任何人)有所帮助

【讨论】:

  • 谢谢。部分问题是 VS Express 版本没有安装 amd64 目录。 >:[然而事实证明,微软对“学生”的定义非常宽松,所以我获得了专业证书,并且能够解决这个问题(在不同的环境中)。
猜你喜欢
  • 2011-12-23
  • 2019-01-30
  • 2016-05-11
  • 2013-04-21
  • 2013-05-05
  • 2018-12-17
  • 2021-05-01
  • 1970-01-01
  • 2017-05-21
相关资源
最近更新 更多