Pregunta

He utilizado OpenMP con gcc para escribir código en paralelo.Ahora estoy usando Visual C++ 2005 y estoy tratando de averiguar cómo el uso de OpenMP.Hay una opción del compilador en Propiedades->C/C++/menú de Idioma, pero luego se queja de que la biblioteca es la que falta.Hay una 3ª parte de la implementación de OpenMP o solo estoy configuración de Visual C++ de forma incorrecta?

¿Fue útil?

Solución

Después de algunas investigaciones descubrí que las librerías DLL y OpenMP no se incluyen con Visual C ++ 2005 o Visual C ++ Express Edition 2008. Sin embargo, con algunas soluciones que puede conseguir que funcione.

En primer lugar es necesario descargar los archivos lib de Microsoft que se pueden encontrar en la Windows SDK para Windows Server 2008 y .NET Framework 3.5 . Después de descargar se necesita para asegurarse de que sea vcomp.lib o vcompd.lib está siendo vinculado a su programa.

A continuación es necesario tener el archivo DLL que se puede encontrar en el Visual C ++ Redistributable Packkage. A continuación, asegúrese de que vcomp90.dll está en algún lugar en su camino.

También es necesario tener la opción de compilador OpenMP permitido que se puede encontrar en el Properties-> C / C ++ / menú de idioma de Visual C ++.

Después de que usted debería ser capaz de utilizar OpenMP muy bien.

Otros consejos

Creo que t funciona fuera de la caja con VC de 2005, pero no estoy seguro de si se proporcionan con todas las versiones.

Si justo adjuntar el

/openmp

opción que también tiene que incluir el abierto mp encabezado

#include <omp.h>

Esto es importante porque este encabezado agregar el manifiesto para su aplicación que permite que se cargue la vcomp.dll a partir de la correcta ruta de acceso del sistema.Por lo que es normalmente ya no se permite copiar vcomp.dll u otros archivos dll del sistema por debajo de su archivo ejecutable, pero usted tiene que chulo el manifiesto de la aplicación para cargar la dll de la ubicación correcta.Esto no es automáticamente por la omp.h encabezado.

Por lo que el mínimo de código si usted no desea modyfy el manifiesto por su propia cuenta es:

#include <omp.h> // has to include this header to build the correct manifest to find vcom.dll or vcompd.dll

int main(int argc, char* argv[])
{
  double sum;
#pragma omp parallel for
  for(int i = 0; i < 10000; ++i) {

  }
    return 0;
}

Es necesario añadir:

/openmp

Para las opciones de compilador.

Más información está disponible en MSDN

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top