我试图使用CLion + MinGW在Windows上开发一个应用程序。
程序可以正常编译和运行,但是当我输入cmake-build-debug文件夹单独运行程序时,程序会报告运行时动态库丢失的错误。
当我从mingw/bin文件夹手动复制这些dll文件时,程序可以正常运行。
档案:libatomic-1.dll,libgcc_s_seh-1.dll,libgomp-1.dll,libssp-0.dll,libstdc++-6.dll,libwinpthread-1.dll
但是,每次手动复制这些文件都很麻烦。我想问一下,有没有办法自动复制这些文件?
我知道有一些add_custom_command语句可以帮助我复制文件,但是我无法获得到那些DLL的路径
发布于 2022-05-08 18:23:53
如果您知道要复制的DLL的位置,可以使用CMake file函数。如果DLL恰好位于C++编译器所在的位置,则可以使用此示例来定位libatomic-1.dll。
file( COPY "${CMAKE_CXX_COMPILER}/libatomic-1.dll" DESTINATION "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/" )这将将文件libatomic-1.dll复制到${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/指定的目录中。
它将使您免于手动执行此任务。
如果您不确定文件在哪里并想要搜索它,那么CMake函数find_path可以为您搜索一系列目录并返回文件的路径。
https://stackoverflow.com/questions/72162594
复制相似问题