2009-10-28 4 views
6

Ho un progetto DLL in VS 2008 Pro che utilizza OpenMP. Io uso/MT come opzione 'code generation', perché voglio tutte le mie dipendenze collegate staticamente nella mia DLL, dato che non voglio distribuire molte librerie ai miei client - tutto deve essere incluso in questo file DLL. Il problema è che la mia DLL risultante dipende ancora da VCOMP90.DLL.Dipendenza da VCOMP90.DLL nel progetto VS2008 Pro OpenMP

Come posso eliminare questa dipendenza?

Alcune informazioni:

  • /OpenMP è impostato nelle opzioni del compilatore
  • i LINK staticamente contro vcomp.lib
  • includono impostato

  • utilizzando la libreria multithread (/ MT)

Grazie mille per il vostro aiuto!

risposta

8

Non credo che sarete in grado di sbarazzarsi della dipendenza DLL - vcomp.lib è una libreria di importazione per la VCOMP90.DLL - non è una libreria statica:

Non sembra che sia fornito un lib statico.

+0

sfortunatamente, sembra che tu abbia ragione ... –

+0

Nota che questo articolo: http://msdn.microsoft.com/en-us/magazine/cc163717.aspx dice che l'SDK di Xbox 360 supporta il collegamento statico di l'OpenMP. Non so se questo è un aiuto (forse può essere violato su VS?). Inoltre, MS fornisce fonte (non sono al momento una macchina con le librerie OpenMP)? Se è così, forse può essere compilata una libreria statica. Entrambe le opzioni suonano rischiose, anche se anche praticabili. –

+0

Il motivo è che OpenMP non funziona bene se caricato più di una volta. Leggi [questo] (https://software.intel.com/en-us/articles/openmp-static-library-deprecation-in-intelr-mkl-on-microsoft-windows). – rustyx