问题描述
我正在使用 CMake 在 Linux for Windows 上交叉编译 boost::program_options。在 CMake 中我指定了
set(Boost_LIBRARIES /usr/local/win64/lib/libboost_program_options.dll)
set(Boost_INCLUDE_DIR /usr/local/win64/incldue)
include_directories(${Boost_INCLUDE_DIR})
target_link_libraries(main.exe -static-libstdc++ -static-libgcc ${Boost_LIBRARIES})
当第一行使用静态 boost,即 libboost_program_options.a 时,生成的 .exe 文件在 Windows 上运行正常。但是,当我想使用动态增强(在上面的代码中)时,在 Windows 上运行 exe 报告缺少 libgcc_s_seh-1.dll。它为什么要找它?
解决方法
当第一行使用静态 boost,即 libboost_program_options.a 时,生成的 .exe 文件在 Windows 上运行正常。但是,当我想使用动态增强(在上面的代码中)时,在 Windows 上运行 exe 报告缺少 libgcc_s_seh-1.dll。它为什么要找它?
您已经在此处隐含地回答了您自己的问题:services = ['Service1','Service2']
if(branch =='master'){. // create any logic you need acodring to the brach value
services = ['Service3','Service4']
}
options = services.collect{"<option value='${it}'>${it}</option>"}.join('\n')
return "<select name='value' ${deployment.equals('Install') ? 'multiple' : ''}>${options}</select>"
是 GCC 运行时 DLL。动态提升不是用 libgcc_s_seh-1.dll
编译的,所以它取决于 -static-libstdc++ -static-libgcc
。 您必须使用这些标志重新编译动态提升。