Search code examples
c++conan

Missing DLL in my project during compilation


I'm new to conan/premake, I've made a conanlist and a premake which is suppose to set my project. But when I execute my project in release mode, I receive QT6Widgets.dll is missing and QT6Core.dll is missing. I don't know how to fix that. Here is my conanfile

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

and this is the premake I've made

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"

Solution

  • Dynamic Link Libraries or DLL for short, is not linked to your application at compile time. The library type that gets liked at compile time are static libraries (.lib files).

    By default when you try executing an application, the system will check if the required DLL is in the working directory (in the directory which the application is placed). If not found, it'll check in the default system directory. If that fails too, an error will be popped.

    So to resolve your issue, copy the QT6Widgets.dll and QT6Core.dll files from your Qt installation directory, and place them in your application's working directory.