编译期间我的项目中缺少 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"

解决方法

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

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

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