diff --git a/CMakeLists.txt b/CMakeLists.txt index ec0276d..87d9de9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,6 +50,34 @@ target_link_libraries(${PROJECT_NAME} # ========== Windows: 复制 DLL ========== if (WIN32) +# 查找 MinGW 运行时库 + if(MINGW) + # 查找 libgcc DLL + execute_process( + COMMAND ${CMAKE_CXX_COMPILER} -print-file-name=libgcc_s_seh-1.dll + OUTPUT_VARIABLE GCC_DLL_PATH + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + # 查找 libstdc++ DLL + execute_process( + COMMAND ${CMAKE_CXX_COMPILER} -print-file-name=libstdc++-6.dll + OUTPUT_VARIABLE STDCPP_DLL_PATH + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + # 复制编译器运行时库 + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${GCC_DLL_PATH} + $ + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${STDCPP_DLL_PATH} + $ + COMMENT "Copying MinGW runtime DLLs" + ) + endif() + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different $