clion能成功编译运行链接dll文件的程序,直接在资源管理器运行输出的exe文件缺失dll

问题遇到的现象和发生背景

做的一个东西,在编译器里能成功编译运行
打开资源管理器启动exe文件缺显示dll文件缺失

问题相关代码,请勿粘贴截图

CMakeLists.txt里内容如下

cmake_minimum_required(VERSION 3.17)
project(MinecraftPixelDrawTool)

set(CMAKE_CXX_STANDARD 20)

#设置头文件路径
set(INC_DIR ./include)

#设置源码路径
set(SCORE_DIR ./score)

#设置链接库路径
set(LINK_DIR ./lib)

#引入头文件
include_directories(${INC_DIR})

#引入库文件
link_directories(${LINK_DIR})

add_executable(MinecraftPixelDrawTool
        ${INC_DIR}/external/json/json-forwards.h

        ${SCORE_DIR}/main.cpp

        ${INC_DIR}/filePP.h
        ${SCORE_DIR}/file/FileStreamHosting.cpp
        ${SCORE_DIR}/file/tool.cpp

        ${INC_DIR}/bitmap.h
        ${SCORE_DIR}/image/bitmap/BitMapImage.cpp
        ${SCORE_DIR}/image/pixel.cpp

        ${INC_DIR}/block_pixel_draw.h
        ${SCORE_DIR}/pixel_draw/Block.cpp
        ${SCORE_DIR}/pixel_draw/PixelBlock.cpp

        ${INC_DIR}/json/util.h
        ${SCORE_DIR}/json/read.cpp
        ${SCORE_DIR}/json/write.cpp
        ${SCORE_DIR}/json/tool.cpp
        )
target_link_libraries(MinecraftPixelDrawTool libjson.dll)
运行结果及报错内容

编译器里运行结果

img

直接在资源管理器运行的结果

img

项目结构

img

我的解答思路和尝试过的方法

我觉得是路径问题,尝试把lib文件夹复制到与exe文件同一目录下也无法运行
但把lib文件夹中的dll文件放在exe文件同一目录下就可以运行了

我想要达到的结果

将dll文件放在与exe文件同一目录下的lib文件夹里且能成功运行

当然是要把dll文件放到exe文件相同文件夹啊。lib只是在编译的时候需要用
如果要实现exe调用不在相同文件夹下的dll文件,要解决的是exe文件怎么知道dll文件在哪里?
你可以在系统变量里增加dll文件所在的路径,或者放到系统变量里已经注册的路径,比如system32下,否则exe无法知道所需的dll文件在哪里