You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CLion中为C++项目构建Release版本并解决DLL查找问题

解决CLion中CMake项目的Release版本构建与DLL依赖问题

一、在CLion中创建Release构建配置

  • 点击右上角运行配置下拉菜单(当前显示为Debug),选择「Edit Configurations...」
  • 在配置窗口左上角点击「+」,选择「CMake Application」
  • 在新配置的「Build configuration」下拉列表中选择「Release」,其余参数CLion会自动识别,直接保存即可。

二、修改CMakeLists.txt,自动复制DLL到可执行文件目录

在原CMake代码的add_dependencies(${PROJECT_NAME} copy_assets)之后,添加以下代码,自动将所需DLL复制到构建输出目录:

# 定义需要复制的DLL路径
set(REQUIRED_DLLS
    I:/onedrive/SDL2/lib/x64/SDL2.dll
    I:/onedrive/SDL2/lib/x64/SDL2_ttf.dll
    I:/onedrive/SDL2/lib/x64/SDL2_image.dll
    I:/onedrive/SDL2/lib/x64/SDL2_mixer.dll
    I:/onedrive/lua4/lua54.dll
)

# 编译完成后自动复制DLL到可执行文件所在目录
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy_if_different
        ${REQUIRED_DLLS}
        $<TARGET_FILE_DIR:${PROJECT_NAME}>
)

可选优化:区分Debug/Release版本的DLL

如果你的SDL库提供了Debug版本(文件名带d后缀,如SDL2d.dll),可以用CMake的配置变量自动适配:

set(SDL_DLL_BASE_DIR I:/onedrive/SDL2/lib/x64)
set(REQUIRED_DLLS
    ${SDL_DLL_BASE_DIR}/SDL2$<$<CONFIG:Debug>:d>.dll
    ${SDL_DLL_BASE_DIR}/SDL2_ttf$<$<CONFIG:Debug>:d>.dll
    ${SDL_DLL_BASE_DIR}/SDL2_image$<$<CONFIG:Debug>:d>.dll
    ${SDL_DLL_BASE_DIR}/SDL2_mixer$<$<CONFIG:Debug>:d>.dll
    I:/onedrive/lua4/lua54.dll
)

add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy_if_different
        ${REQUIRED_DLLS}
        $<TARGET_FILE_DIR:${PROJECT_NAME}>
)

三、构建并运行Release版本

  • 点击CLion菜单栏「Build」->「Clean Project」,清理旧构建文件
  • 选择刚才创建的Release配置,点击构建或运行按钮,CLion会自动编译Release版本,并将DLL、assets复制到cmake-build-release目录下的可执行文件同路径中,此时程序可直接运行。

额外建议

将原CMake中的全局包含目录和链接目录改为目标专属设置,更符合现代CMake规范:

# 替换原有的include_directories和link_directories
target_include_directories(${PROJECT_NAME} PRIVATE I:/onedrive/SDL2/include libs)
target_link_directories(${PROJECT_NAME} PRIVATE I:/onedrive/SDL2/lib/x64 libs)

内容的提问来源于stack exchange,提问作者Oli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 22:45:16