gpt4 book ai didi

visual-studio-2012 - 当 C++/CLI 项目使用/ZI 引用静态库项目时出现警告 LNK4075(编辑并继续)

转载 作者:行者123 更新时间:2023-12-03 13:33:25 26 4
gpt4 key购买 nike

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

  • native (无 /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,因为这不受支持。实际上,在静态库项目中将/ZI 更改为/Zi(禁用编辑并继续)消除了警告,但我不能这样做 - 该库的其他非 CLR 使用者需要使用编辑并继续。

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

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

    最佳答案

    due to '/OPT:LBR' specification



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

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

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

    关于visual-studio-2012 - 当 C++/CLI 项目使用/ZI 引用静态库项目时出现警告 LNK4075(编辑并继续),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21965816/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com