检查 .lib 文件的工具?

2024-03-11

我正在评估一些文档不足的软件。当我构建示例项目时,我收到一个链接器错误,如下所示:


error LNK2019: unresolved external symbol  

这个应用程序没有大量的 lib 文件,因此我可以通过反复试验来解决这个问题,但我知道有一种更优雅的方法来解决这个问题。

在java世界里,我会grep FOO *.jar找到 jar,我正在寻找 C++ 类似物。我正在 Visual Studio 2005 中处理 C++ 代码。

我怀疑带有 /LIST 选项的 lib.exe 实用程序可以获取该信息,但到目前为止我还没有成功。它只是打印这个:



Microsoft (R) Library Manager Version 8.00.50727.762
Copyright (C) Microsoft Corporation.  All rights reserved.

granite50.dll
granite50.dll
granite50.dll
granite50.dll
...
  

有什么建议么?


首先,您需要知道您正在查看哪种类型的库。有些库仅包含 DLL 的链接(即导入库),而其他库则是成为可执行映像一部分的代码对象(即静态库)。从该输出的外观来看,您正在查看一个 DLL 导入库。

接下来你要使用正确的工具。 Lib.exe 用于从库等中提取目标文件。这与 Java 的 jar 实用程序几乎相同。 Microsoft 提供了 dumpbin.exe,它将从库中转储信息。我看到LarryF https://stackoverflow.com/questions/488809/tools-for-inspecting-lib-files#488823已经提到过这一点。

对于导入库,运行dumpbin.exe -headers foo.lib并将其重定向到输出文件。输出将包含相关 DLL 导出的每个符号的片段。搜索以以下内容开头的行" Symbol name :"。请注意,如果您想要精确匹配,“交易品种名称”前后有两个空格。您还可以通过运行输出findstr生成符号列表并将其重定向到文本文件(如果您想要更好看的东西):

dumpbin.exe -headers foo.lib | findstr /c:"  Symbol name  :" > foo-exports.txt

另一种选择是使用以下命令打开相关的 DLLdepends.exe.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查 .lib 文件的工具? 的相关文章

  • 在 Visual Studio 2013 中更改 TFS 源代码管理映射

    我有多个先前映射到托管 TFS 的解决方案 他们的本地映射也已定义 并且所有源代码都是本地最新的 此后我停止了 TFS 订阅并开始使用 Visualstudio com 作为我的 TFS 服务器 我进入其中一个解决方案 从解决方案中删除 v
  • 如何引用解决方案之外的项目?

    我有一个 Visual Studio C 解决方案 其中包含一些项目 其中一个项目需要引用另一个不属于解决方案的项目 一开始我引用了dll
  • Visual Studio 2012 命令窗口不支持“xsd”命令吗?

    我读到可以直接在 Visual Studio 2010 中运行 xsd 命令 我的机器上有 VS 2012 当我运行时 xsd XMLFile xml I get 命令 xsd 无效 那么 VS 2012 中是否不支持 xsd 命令 还有其
  • 根据所选单选按钮启用文本框

    我有一个单选按钮列表 其中列出了不同的业务类别 最后一个选项是Other类别 当用户选择Other类别 我希望能够启用一个文本框 用户可以输入更多信息来解释Other选择 目前 我正在尝试 If rblCategory SelectedIn
  • 是否可以在 Visual Studio 中重命名项目,使其文件夹名称也重命名?

    假设我们正在开发一个名为 MyProject 的项目 我希望能够将其名称更改为 MyProject2 并将其文件夹名称也重命名为 MyProject2 这可以从 Visual Studio 中实现吗 如果不是 如何让这种情况发生在 外部 呢
  • 如何在 C# 中向类、方法、属性等添加文档工具提示?

    不确定我的说法是否正确 但我想开始向我的类 方法 属性等添加一些文档 我know这可能是非常明显的 但我从未真正学会过 我不知道从哪里开始 只是为了澄清 每当您滚动某个类 或方法 属性等 时 它都会在 Visual Studio 中显示一个
  • 在 Visual Studio 中使用代码片段

    Right now when I want to use the cw snippet Code snippet for Console WriteLn I am typing cw Tab Tab 这是正确的 最快的 方法吗 如果有某种方
  • 在 Visual Studio 中设置 SSL 证书

    我在新计算机上全新安装了 Visual Studio Community 2019 我启动了一个网络应用程序项目 第一次运行它 然后当提示接受自签名证书时 我以某种方式设法单击 不再询问 and No 此时 运行网络应用程序时 我收到 ER
  • Visual Studio 有格式代码快捷方式吗?

    In Eclipse http en wikipedia org wiki Eclipse 28software 29 there is a shortcut Ctrl Shift F that re indents code and fi
  • Qt 5.6 测试版 Visual Studio 2015

    我已经安装了这个 http download qt io development releases qt 5 6 5 6 0 beta qt opensource windows x86 msvc2015 5 6 0 beta exe mi
  • C# 开发人员有什么理由应该学习 Emacs/Vim 吗?

    我在一家纯粹的 Microsoft 商店担任 C 开发人员 最近 我开始在工作之余的空闲时间使用 Gas 和 Linux 自学汇编 我喜欢摆弄 Linux 尽管我对它还很陌生 我一直听说我应该学习 VIM 或 Emacs 但事实是 我绝对不
  • 如何在没有互联网连接的情况下安装 NuGet 包?

    目前我正在一台不允许访问互联网的虚拟电脑上进行开发 我设法获取 NuGet Tools vsix 将 NuGet 添加到 Visual Studio 2010 但似乎无法找出如何离线部署 NuGet 包 例如 我下载了EntityFrame
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • 在Linux中,找不到框架“.NETFramework,Version=v4.5”的参考程序集

    我已经设置了 Visual studio 来在我的 Ubuntu 机器上编译 C 代码 我将工作区 我的代码加载到 VS 我可以看到以下错误 The reference assemblies for framework NETFramewo
  • 是否可以使用 MS Visual Studio 作为 LaTeX 用户的 IDE?

    我是 Microsoft Visual Studio 的忠实粉丝 我喜欢代码折叠 自动完成 自动格式化等等 我想如果我能将 MS Visual Studio 用作 LaTeX 用户的 IDE 就好了 简而言之 可能吗 对于第一步 我认为让我
  • 在属性上方显示 CodeLens [重复]

    这个问题在这里已经有答案了 在字段和字段属性之间看到 codelens 引用是非常烦人的 它需要在周围添加很多额外的空格以使所有内容都可读 是否可以在属性上方显示 CodeLens 参考 不 目前这是不可能的 如果您想看到这个 我建议您向产
  • 更新 Visual Studio 2017 15.6.2 时出错

    我试图将 VS 2017 更新到 15 6 2 版本 像往常一样 VS 要求我更新安装程序 但是安装程序更新失败 现在 当我尝试再次启动 VS 更新时 收到以下错误消息 加载 vs installershell exe 时出错 主题中不存在
  • 从共享点下载文件

    我正在尝试从共享点下载文件 我有此代码并抛出错误代码 500 static void DownloadFile string serverFilePath Here goes my URL that open the file from a
  • 如何避免用户帐户控制或在Win7中始终以管理员模式运行Windows应用程序

    在 WinForms 应用程序中 当我的应用程序启动时 将出现 用户帐户控制 对话框 仅在 Windows 7 中 任何人都可以建议我如何以编程方式避免这种情况 也就是说我的应用程序应该始终以管理模式启动 或者是否有任何选项可以阻止此对话框

随机推荐

  • Symfony2 简单文件上传编辑,无实体

    请帮助我 因为我不敢相信自己的眼睛 我拒绝使用某些第三方插件进行文件上传 并拒绝为文件 文档创建单独的实体 我只想在 Zend Laravel 等中进行简单的文件上传 我有一个发票表 最后一列名称为 附件 我想在此处存储其清理后的名称 例如
  • 误报选项不会出现在项目中

    我在 Ubuntu 12 01 机器上使用 Sonarqube 我使用 Sonar Runner 和 Jenkins 插件来分析我的代码 当我对新项目进行分析时 问题就出现了 例如 我已经保存了 Sonar A 和 B 项目 如果我对该项目
  • 理解 Dymola 错误消息时遇到问题

    谁能告诉我 代数环 的含义 以及我应该如何通过添加 预 运算符来应对这种情况 我真的没看懂 Error Failed to generate code for an algebraic loop involving when equatio
  • 如何动态计算HTML页面表格中每一列的总计?

    我基本上会有一个表格 其中包含一周中的几天 标题行交叉 第 1 栏 周日 第 2 栏 周一等 每个单元格将输入工作时间 即8 最后一行 我希望每个单元格在将数据输入到每个单元格后动态计算其列中其上方单元格的总数 理想情况下 应在将光标移动到
  • 每个外键都有索引?

    每个外键上的索引是否都会优化查询 通常 在外键上放置索引被认为是良好的做法 这样做是因为在将 FK 表链接到包含键定义的表时 它有助于提高联接性能 这不会神奇地使您的整个查询得到优化 但它肯定有助于提高 FK 与其主键对应部分之间的连接性能
  • 如何检测 GHC 默认生成 32 位还是 64 位代码?

    我的里面有以下内容makefile https github com bsl GLFW b blob master Makefile GLFW FLAG m32 O2 Iglfw include Iglfw lib Iglfw lib co
  • jwt 令牌过期后如何注销

    我正在开发一个网络应用程序 使用node js and vue js 我正在使用进行身份验证和维护会话jwt and passport js using passport jwtstrategy 我已经完成了从创建 jwt 到保护路由的所有
  • 如何在 Python 中对编辑距离超过 80% 的单词进行分组

    假设我有一个清单 person name zakesh oldman LLC bikash goldman LLC zikash rakesh 我正在尝试以这种方式对列表进行分组 以便编辑距离 https en wikipedia org
  • 在远程计算机上运行命令

    我想使用 C 在远程计算机上的命令提示符中运行命令 根据此链接如何在远程计算机上执行命令 https stackoverflow com questions 428276 how to execute a command in a remo
  • 我需要调用[super viewDidUnload]吗?

    我见过一些Apple调用的例子 super viewDidUnload 也有一些没有 我读过一篇文章 几个月前所以我不记得网址 说打电话 super viewDidUnload 是不必要的 但除此之外没有解释 是否有明确的理由为什么或为什么
  • 分段错误 p_thread 可能存在竞争条件

    问题 我创建了子线程 TIDS 的链接列表 并希望在继续主线程之前等待所有子线程 TIDS 完成执行 基本上我有目录遍历 目录由给定的成员指定struct 每次我看到一个目录或文件时 我都会创建一个新线程并将其放入threadID进入链表
  • 通过逻辑索引为数组赋值不起作用

    在Matlab中 我想用其他值替换某个值 我知道我可以这样做 X X 0 1 如果我想将所有出现的 0 替换为 1 我有一个数组 X 其中包含范围在 0 到 9 之间的数字 我想创建一个新数组 Y 其中如果 X i 某个给定数字 例如 5
  • 将列表附加到 R 中的列表列表

    我在将数据附加到已经采用列表格式的列表时遇到问题 我有一个程序 它将在模拟循环期间导出结果对象 数据本身存储为矩阵列表 我的想法是将这些列表存储在一个列表中 然后将此列表列表保存为 R 对象以供以后分析 但是我在正确实现这一点时遇到了一些问
  • 如何在 git checkout 中使用八进制字符?

    我有一个音乐文件的 git 存储库 最近我发现有些文件被删除了 我想我不小心删除了它们 但现在我只是短暂地陶醉于我有先见之明的事实 使用 git 存储库 因此我当前的 git 状态验证它们已被删除 以下是一些清单 deleted Steve
  • 在 ASP .NET (SMTP) 中发送邮件

    我在代码文件中编写了以下代码 但它不起作用 请帮助我 protected void Button1 Click object sender EventArgs e MailMessage msgeme new MailMessage ema
  • VBA:复制时前面的零被删除

    我正在使用 VBA 创建 Excel 文件的副本 在该文件中 有一列包含前面带有零的数字 该文件的副本已创建 但该列中的数据将被删除 我需要保留前面带有零的值 我该如何用VBA解决这个问题 最好的方法是通过将 Range NumberFor
  • 带有泛型的映射数组的问题[重复]

    这个问题在这里已经有答案了 可能的重复 Java 泛型和数组初始化 https stackoverflow com questions 470198 java generics and array initialization 如何在 Ja
  • 代码在 g++ 中运行完美,但在 Xcode 中则不然 - 找不到文件

    我创建了一个包含内容的文本文件 它与 cpp 文件位于同一文件夹中 而且我已经多次确认该文件存在 当我运行 g 时 编译并运行它会找到该文件 当我在 Xcode 中运行它时 它不起作用 如果找不到该文件 include
  • int 和 NSInteger 有什么区别? [复制]

    这个问题在这里已经有答案了 可能的重复 何时使用 NSInteger 与 int https stackoverflow com questions 4445173 when to use nsinteger vs int 为什么会有 NS
  • 检查 .lib 文件的工具?

    我正在评估一些文档不足的软件 当我构建示例项目时 我收到一个链接器错误 如下所示 error LNK2019 unresolved external symbol 这个应用程序没有大量的 lib 文件 因此我可以通过反复试验来解决这个问题