【问题标题】:How do I fix fatal error C1113: #using failed on 'Mylib.lib'如何修复致命错误 C1113: #using failed on 'Mylib.lib'
【发布时间】:2010-01-27 11:41:08
【问题描述】:

我有一个项目,它使用 C++/CLI 来实现 GUI 和一些后台处理来与传感器对话。我已经完成了所有工作,并且我们用来与传感器通信的许多通信内容都位于 .dll 中。问题是我想将库合并到主可执行文件中,以避免担心分发 .dll。

我有一个演示项目,它使用 .lib 可以正常工作,但是当我尝试切换 mani 代码主体以生成 .lib 而不是 .dll 时,我收到以下错误:

1>------ Build started: Project: MyTool, Configuration: Debug Win32 ------
1>Compiling...
1>stdafx.cpp
1>.\stdafx.cpp : fatal error C1113: #using failed on 'c:\projects\MyTool\debug\MyLib.lib'

A bit of googling 建议当您没有应用 MSIL 开关时会发生这种情况,但它肯定在库项目中。

我的演示项目和真实项目中混合了托管和非托管代码,所以我真的很难找出问题所在。

任何建议都将非常感激!

【问题讨论】:

    标签: c++-cli dll .lib


    【解决方案1】:

    我猜了一下,但我怀疑“MyTool”项目将“MyLib”项目作为其“引用”之一(“项目”菜单 >> 属性 >> 通用属性 >> 引用)。

    当您将 MyLib 项目的类型更改为 LIB 而不是 DLL 时,您需要从项目引用中删除“MyLib”。然后更新解决方案的项目依赖项(“项目”菜单>>“项目依赖项...”),以便 MyTool 依赖于 MyLib。

    【讨论】:

      【解决方案2】:

      如果您链接到混合模式(托管/本机)DLL,您可能会收到此错误。如果项目使用 CLR,即使其中一个源文件没有,您也不应该这样做。但无论如何,如果是这种情况,请尝试从 Project|Properties|Common Properties|References 中删除引用,然后重新添加它。

      【讨论】:

        【解决方案3】:

        我也遇到过这个。它失败的原因是因为我正在编译我的本机/托管 C++ DLL 以定位 .NET 4.0。我使用的 DLL 是一个 .NET 2.0 DLL。因此它失败了,即使路径和文件名完美排列。在这种情况下,错误消息完全没有帮助。 我通过将独立 DLL 更新到 .NET 4.0 来解决它。这样两个程序集都使用相同的 .NET 框架。

        【讨论】:

        • 这只是我的想象,还是 .NET 将糟糕的错误消息提升到了一个全新的水平?
        猜你喜欢
        • 1970-01-01
        • 2019-11-10
        • 1970-01-01
        • 2015-01-27
        • 2020-08-13
        • 2023-04-11
        • 2022-11-29
        • 2023-03-12
        • 2012-09-22
        相关资源
        最近更新 更多