求助:使用OpenMP编译C++程序时缺失libgomp等DLL的问题
解决方案
你遇到的问题是因为OpenMP和winpthread相关的运行时库仍为动态链接状态,只需在编译命令中补充对应的静态链接参数即可解决:
- 添加
-static-libgomp:静态链接OpenMP运行时库,解决libgomp-1.dll缺失问题 - 添加
-static-libwinpthread:静态链接winpthread库,解决libwinpthread-1.dll(你输入的libwindthread应为笔误)缺失问题
修改后的完整编译命令:
g++ -fdiagnostics-color=always -fopenmp -static-libgcc -static-libstdc++ -static-libgomp -static-libwinpthread -g -std=c++20 C:\Users\PC\Documents\DP\code\*.cpp -o C:\Users\PC\Documents\DP\code\MDSR.exe
如果上述参数仍有问题,可尝试使用-static参数替代单独的静态链接选项,它会将所有依赖库都静态编译到可执行文件中(代价是生成的exe体积会显著增大):
g++ -fdiagnostics-color=always -fopenmp -static -g -std=c++20 C:\Users\PC\Documents\DP\code\*.cpp -o C:\Users\PC\Documents\DP\code\MDSR.exe
内容的提问来源于stack exchange,提问作者Jakub Kučera
相关产品推荐
相关产品推荐

