如何安装GCC运行时库与CMake的?(How can I install GCC runtime

2019-08-01 17:09发布

我编译一个C ++程序,这是我的电脑上完美的工作,但如果我的朋友试图启动程序,它说libgcc_s_sw2-1.dll缺失。 我怎么能包括所有使用C进行程序所需的GCC运行时库?

Answer 1:

作为rubenvb正确答案:libgcc中是必需的,或者你应该添加CMAKE_EXE_LINKER_FLAGS=-static您的CMakeLists.txt。

作为替代方案,你可以尝试找到libgcc_s_sw2-1.dll在你的MinGW安装和“包”,它使用安装InstallRequiredSystemLibraries 。 这与很好地集成CPack为好。

在我自己的代码,例如,我有:

if( MINGW )
    message( STATUS "    Installing system-libraries: MinGW DLLs." )
    get_filename_component( Mingw_Path ${CMAKE_CXX_COMPILER} PATH )
    set( CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS ${Mingw_Path}/mingwm10.dll ${Mingw_Path}/libgcc_s_dw2-1.dll ${Mingw_Path}/libstdc++-6.dll )
endif( MINGW )
include( InstallRequiredSystemLibraries )

后来,在准备安装或包中的一部分:

# Actually install it when make install is called.
# Note, this works with CPack
if( CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS )
    install( PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} DESTINATION bin COMPONENT System )
endif( CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS )


Answer 2:

该libgcc的DLL由使用GCC编译的所有程序所需。 如果你不想重新发布与程序这个DLL,你必须通过静态链接-static的链接,或CMake的:

CMAKE_EXE_LINKER_FLAGS=-static

这是具体的GCC。



文章来源: How can I install GCC runtime libraries with CMake?
标签: gcc cmake mingw