【问题标题】:How can I make Visual Studio copy the required .dll files into the release folder?如何让 Visual Studio 将所需的 .dll 文件复制到发布文件夹中?
【发布时间】:2013-11-18 10:05:35
【问题描述】:

我正在使用 Visual Studio 2012 和 C++,开发一个 Qt 应用程序。

我能够编译和调试它,但是,不知何故,DebugRelease 文件夹中没有 .dll 文件。我尝试了其他一些帖子解决方案,但都没有奏效。

那么,如何让 Visual Studio 将所需的 .dll 文件复制到发布文件夹中?

我认为它应该是某个地方的一个选项。我刚刚开始考虑手工复制它。

【问题讨论】:

  • 您可以尝试将它们添加为资源
  • 在你的项目的properties中,有一个名为resources的部分,我将其添加为答案
  • 我们在谈论哪个 dll?调试/发布文件夹中需要什么 DLL?这些应该由您的项目构建,还是这些常规 Qt DLL?
  • 常规的 Qt Dlls 和 msvc 也是。

标签: c++ qt visual-studio-2012 dll


【解决方案1】:

太多糟糕的建议,DLL 不能成为资源。 Windows 要求将代码存储在具有适当 PE32 标头的单独可执行文件中。这允许它创建一个内存映射文件以将文件内容映射到内存中,从而允许多个进程共享代码并将其保留在页面文件之外。并在 DLL 的基地址已被使用时重新定位代码。

只需使用项目 + 属性、构建事件、构建后事件来 xcopy DLL。随意地,如果您将所需的 DLL 存储在项目的“dlls”子目录中,那么此命令将仅在必要时复制它们:

 xcopy /d /y "$(ProjectDir)dlls\*.*" "$(OutDir)"

在 Debug 和 Release 配置中都使用它,这样您就可以准确地调试您要发布的内容。

【讨论】:

    【解决方案2】:

    将您的.dll 文件作为资源添加到您的项目中。这样,您的 .dll 文件将位于项目的 resources 文件夹中。

    尝试Add Item... -> New Item... 并将资源 (.qrc) 文件添加到项目中,然后将 .dll 文件添加到其中。

    【讨论】:

    • 编译时我刚刚收到此警告:RCC : 警告 : No resources in 'C:\Users\Netwave\Documents\Visual Studio 2012\Projects\Shutdowner\Shutdowner\shutdowner.qrc'
    • 好吧,我一直在调查,它应该在“Manifest Tool”和“XML Document Generator”之间,但我的没有这样的选项......:S
    • @DanielSanchez:在您的解决方案资源管理器中,右键单击您的项目名称,在列表末尾您将看到Properties
    • ow,尝试添加新项目,然后将资源文件添加到项目中
    猜你喜欢
    • 1970-01-01
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    相关资源
    最近更新 更多