【问题标题】:Warning LNK4075 when a C++/CLI project references a static lib project with /ZI (Edit And Continue)当 C++/CLI 项目使用 /ZI 引用静态库项目时出现警告 LNK4075(编辑并继续)
【发布时间】:2014-03-24 19:41:09
【问题描述】:

我在 Visual Studio 2012 解决方案中有以下项目:

  • 本机(无 /clr)静态库项目,使用 /ZI 编译以进行编辑并继续。
  • C++/CLI DLL 项目,它引用了上面的静态库。

C++/CLI 项目生成时出现以下警告:

warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:LBR' specification

如果将 /OPT:NOLBR 添加到 C++/CLI 项目的链接器选项中,则警告变为:

warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/INCREMENTAL:NO' specification

任何更改 C++/CLI 项目的增量链接设置的尝试都不会更改警告(C++/CLI 项目永远不会增量链接)。

我了解我将无法在 C++/CLI 项目中使用 Edit And Continue,因为它不受支持。实际上,在静态 lib 项目中将 /ZI 更改为 /Zi(禁用 Edit And Continue)可以消除警告,但我不能这样做 - 该 lib 的其他非 CLR 使用者需要使用 Edit And Continue。

如何在不禁用静态库中的“编辑并继续”的情况下消除此警告(并且希望不为静态库的本机和 CLR 用户维护单独的构建配置)?我的意思是,有没有办法让链接器忽略嵌入在引用的静态库中的/EDITANDCONTINUE 指令(与/NODEFAULTLIB 可以忽略/DEFAULTLIB 指令的方式非常相似)?

我创建了一个minimal VS solution 来重现所描述的问题。

【问题讨论】:

    标签: visual-studio-2012 c++-cli warnings edit-and-continue


    【解决方案1】:

    别无他法

    • 在库中禁用“编辑并继续”
    • 为“编辑并继续 (/ZI)”和“程序数据库 (/Zi)”创建单独的构建配置

    当然:我不知道有一个预定义的宏来确定 /ZI 和 /Zi...所以您需要定义自己的预处理器指令来区分这些配置...

    【讨论】:

      【解决方案2】:

      由于“/OPT:LBR”规范

      这是一条无意义的错误消息,链接器选项仅对 ARM 二进制文件有效。这只是一个错误,使用 /OPT:NOLBR 可以消除它的刺痛,您会收到 real 警告。

      这是足够准确的,虽然它也没有赢得任何奖项,但您要求在静态库项目中提供编辑+继续支持,但这不适用于混合模式 .NET 程序集。未记录的 /IGNORE 链接器选项可用于禁止显示警告消息,但该选项被 Chapell 列为 "unignorable warning"

      只要您不想更改静态库项目,就必须忍受这个警告。这是完全良性的。用 /Zi 重新编译时不会得到它。

      【讨论】:

      • 我正在搜索可以通过 VisualStudio 中的下拉菜单设置 /OPT:NOLBR 的设置。但是,没有用于此的 UI 元素。您必须将其添加为Configuration Properties -> Linker -> Command Line 下的附加选项
      【解决方案3】:

      我遇到了同样的问题,发现唯一的解决方案是删除项目的 .vcxproj 和 .sln 文件并重新创建项目。 但后来在同一个项目的旧副本中,我找到了一个更好的解决方案:我在 projectname.vcxproj 文件中更改了该行 个人资料真实 到 配置文件错误 和 LNK4075 警告消失了。 造成麻烦的是 Visual Studio Profiler。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多