首页 > 解决方案 > 编译期间我的项目中缺少 DLL

问题描述

我是 conan/premake 的新手,我已经制作了一个 conanlist 和一个 premake 来设置我的项目。但是当我在发布模式下执行我的项目时,我会收到QT6Widgets.dll is missingQT6Core.dll is missing. 我不知道如何解决这个问题。这是我的conanfile

[requires]
glfw/3.3@bincrafters/stable
qt/6.0.1@bincrafters/stable
boost/1.75.0
[generators]
premake

这是我做的预制件

include "build/conanbuildinfo.premake.lua"

workspace "TileEditor"
    conan_basic_setup()

    configurations
    {
        "Debug",
        "Release",
        "Dist"
    }

outputdir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"

project "TileEditor"
    location "TileEditor"
    kind "WindowedApp"
    language "C++"

    targetdir ("bin/" .. outputdir .. "/%{prj.name}")
    objdir ("bin-obj/" .. outputdir .. "/%{prj.name}")

    linkoptions { conan_exelinkflags }

    files
    {
        "**.h", "**.cpp" 
    }

    filter "configurations:Debug"
    defines { "DEBUG" }
    symbols "On"

    filter "configurations:Release"
    defines { "NDEBUG" }
    optimize "On"

标签: c++conan

解决方案


动态链接库或简称 DLL,在编译时不会链接到您的应用程序。在编译时喜欢的库类型是静态库(.lib文件)。

默认情况下,当您尝试执行应用程序时,系统会检查所需的 DLL 是否在工作目录中(在应用程序所在的目录中)。如果未找到,它将检查默认系统目录。如果这也失败了,则会弹出一个错误。

因此,要解决您的问题,请从 Qt 安装目录复制QT6Widgets.dllQT6Core.dll文件,并将它们放在应用程序的工作目录中。


推荐阅读