2009-10-28 16 views
6

我在使用OpenMP的VS 2008 Pro中有一个DLL项目。我使用/ MT作为'代码生成'选项,因为我希望我的所有依赖项都静态链接到我的DLL中,因为我不想将很多库分发给我的客户端 - 所有内容都应该包含在这一个DLL文件中。问题是我的结果DLL仍然依赖于VCOMP90.DLL。VS2008 Pro OpenMP项目中VCOMP90.DLL的依赖关系

我该如何摆脱这种依赖性?

一些信息:

  • /OpenMP是在编译器选项设置
  • 我对静态vcomp.lib
  • 包括使用多线程库(/ MT)

  • 设置
  • 链接

非常感谢您的帮助!

回答

8

我不认为你将能够摆脱DLL依赖 - vcomp.lib对于VCOMP90.DLL导入库 - 它不是一个静态库:

它看起来不像是提供了一个静态库。

+0

不幸的是,它似乎是你正确的... – 2009-11-05 17:27:15

+0

请注意,这篇文章:http://msdn.microsoft.com/en-us/magazine/cc163717.aspx说,Xbox 360 SDK支持静态链接OpenMP。我不知道这是否有帮助(也许它可以被黑客入侵VS?)。另外,MS是否提供了源代码(我现在不在使用OpenMP库的机器上)?如果是这样,也许可以编译一个静态库。不过,这两种选择听起来都有风险,即使可行。 – 2009-11-05 18:58:24

+0

原因是如果加载多次,OpenMP无法正常工作。阅读[this](https://software.intel.com/zh-cn/articles/openmp-static-library-deprecation-in-intelr-mkl-on-microsoft-windows)。 – rustyx 2016-01-21 09:03:55