OpenMP en Visual Studio 2005 Standard
-
21-08-2019 - |
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?
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