2009-10-28 14 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