未找到以前编译的可用 IPDB/IOBJ

Posted

技术标签:

【中文标题】未找到以前编译的可用 IPDB/IOBJ【英文标题】:No usable IPDB/IOBJ from previous compilation was found 【发布时间】:2016-11-21 12:45:14 【问题描述】:

项目结构如下。 (Visual Studio 2015 社区)

一个静态库项目 一个控制台应用程序项目

静态库使用默认设置创建并链接到控制台应用程序项目。程序运行良好。但是在与静态库链接的控制台应用程序的发布版本中会显示以下信息。

所有 205 个函数都已编译,因为。

完成生成代码

==========全部重建:1成功,0失败,0跳过==========

使用默认选项生成发布静态库时是否有任何问题。

无法理解为什么静态库构建目录中没有 ipdb/iobj 文件。而控制台应用程序构建目录中有 ipdb/iobj 文件。

每个项目(静态/控制台应用程序)都是使用默认设置构建的。

静态库位于 C 中,控制台应用程序位于 C++

在调试版本中不显示此类信息。

【问题讨论】:

【参考方案1】:

与上述相同的问题 项目结构如下。 (Visual Studio 2017 v15.6.6 社区)

一个库项目一个 Windows 应用程序项目

库是使用默认设置创建的,并链接到 Windows 应用程序项目。程序运行良好。但是在库的发布版本中会产生与上述相同的错误。

上面的第一个答案是正确的。解决此问题的方法是 Visual Studio,即查看库构建选项并更改链接器选项。

链接器 --> 优化 --> 使用快速链接时间代码生成 (/LTCG:incremental)

删除链接器选项中的增量

链接器 --> 优化 --> 使用快速链接时间代码生成 (/LTCG)

【讨论】:

将其添加为评论而不是答案 您好,Ignacio,我尝试添加评论,但系统不允许我添加评论,因为我没有足够的声望点。系统说我需要50分才能添加评论 答案不清楚。没有选项使用快速链接时间代码生成 (/LTCG)【参考方案2】:

它与静态库构建无关。只有可执行版本才有 LTCG:incremental 选项可用。在构建控制台/Windows 应用程序时,没有 ipdb/iobj 文件,因此会显示信息。在第一次构建 ipdb/iobj 文件后创建。所以在那之后没有更多的信息,直到重建被调用。这只是启用了带增量选项的 LTCG 的信息。

【讨论】:

以上是关于未找到以前编译的可用 IPDB/IOBJ的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 设备不可用,未找到运行时配置文件

当站点下仍然可用时,未找到 Sharepoint REST Api 列表

Ionic Cordova Android:未找到可用的 Android 构建工具。最高 30.x 安装版本为 30.0.2;所需的最低版本是 30.0.3

Qt 驱动程序 Postgresql 可用但未加载

C# 从FTP下载文件报错: 远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)。

未能在 <sql_node_ipaddr> 处为 API 分配 nodeid。返回错误:“未找到 mysqld(API) 的可用节点 ID。”