CMake-如何动态链接gcc运行库 我是CGube的新手,目前正在学习C++和CMake。
我以前尝试过构建我的简单应用程序,我的目标是将所有依赖项(包括运行时libs)作为dll(没有特别的原因,我这样做是为了学习) 我努力寻找一种方法,使cmake能够自动找到所有依赖的运行时lib(在我的例子中是CMake-如何动态链接gcc运行库 我是CGube的新手,目前正在学习C++和CMake。,c++,cmake,C++,Cmake,我以前尝试过构建我的简单应用程序,我的目标是将所有依赖项(包括运行时libs)作为dll(没有特别的原因,我这样做是为了学习) 我努力寻找一种方法,使cmake能够自动找到所有依赖的运行时lib(在我的例子中是libgcc_s_dw2-1,libstdc++-6和libwinpthread-1),并将其复制到exe所在的目录中 我的问题是: 首先,我的方法明智吗?我找到了许多关于如何静态链接这些内容的说明,但这不是我想要的 如何实现我想做的事?我正在尝试类似于: get_filename_组件(
libgcc_s_dw2-1
,libstdc++-6
和libwinpthread-1
),并将其复制到exe所在的目录中
我的问题是:
get_filename_组件(Mingw_路径${CMAKE_CXX_编译器}路径)
添加自定义命令(
目标数学后期构建
命令${CMAKE_COMMAND}-E复制
${Mingw_Path}/libgcc_s_dw2-1.dll
$
)
添加自定义命令(
目标数学后期构建
命令${CMAKE_COMMAND}-E复制
${Mingw_Path}/libstdc++-6.dll
$
)
添加自定义命令(
目标数学后期构建
命令${CMAKE_COMMAND}-E复制
${Mingw_Path}/libwinpthread-1.dll
$
)
这是可行的,但它不会自动为我找到所有东西,我想我不必手动从mingw找到我需要的每个dll
在这个git repo中可以看到整个存储库:
get_filename_component( Mingw_Path ${CMAKE_CXX_COMPILER} PATH )
add_custom_command(
TARGET Maths POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${Mingw_Path}/libgcc_s_dw2-1.dll
$<TARGET_FILE_DIR:Maths>
)
add_custom_command(
TARGET Maths POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${Mingw_Path}/libstdc++-6.dll
$<TARGET_FILE_DIR:Maths>
)
add_custom_command(
TARGET Maths POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${Mingw_Path}/libwinpthread-1.dll
$<TARGET_FILE_DIR:Maths>
)