今天编译一个OpenMP的稠密矩阵乘法的例子程序,debug方式下都正常(/openmp 或者 /openmp-)。release方式下/openmp也编译成功了,但是“/openmp-”提示:
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(574,5): error MSB6006: “mt.exe”已退出,代码为 31。
不过.exe其实已经生成了。我再生成项目,就没有这个错误提示了。运行了一下生成的exe还挺快,比/openmp还快。可能是程序太简单,单线程比多线程还快吧,没深究。
网上搜了一下,枫之逆的博文https://blog.youkuaiyun.com/lufeng20/article/details/17961411说把 工程属性页中的:”配置属性 | 清单工具 | 输入和输出 | 嵌入清单” 改成“否”,就可以了。试了下,果然是这样。字面意思就是,是把"清单文件"嵌入程序集中还是作为单独的文件。
后来,release方式下用/openmp选项也出了这个提示("嵌入清单” 为“是")。
没再试验了。这个问题好像和OpenMP没什么关系。
本文探讨了在使用OpenMP进行稠密矩阵乘法编译过程中遇到的错误:mt.exe已退出,代码为31。通过调整工程属性页中嵌入清单设置,从是改为否,成功解决了该问题。文中还提及了release模式下使用不同OpenMP选项的表现差异。
1万+

被折叠的 条评论
为什么被折叠?



