2010-03-26 18 views
11
#include <intrin.h> 

Lo anterior reportar:Cómo lidiar con "intrin.h: ¿No existe ese archivo o directorio"?

intrin.h: No such file or directory 

que parece ser un archivo de cabecera MSVC, pero estoy usando Eclipse CDT, ¿cómo puedo hacer que esté disponible ¿Hay algunas bibliotecas necesarias??

CDT utiliza MinGW para compilar, pero no hay intrin.h:

D:\Tools\MinGW\lib\gcc\mingw32\3.4.5\include>dir *intrin.h 

2006-01-17 21:47   34,528 emmintrin.h 
2006-01-17 21:47   22,281 mmintrin.h 
2006-01-17 21:47    3,586 pmmintrin.h 
2006-01-17 21:47   30,925 xmmintrin.h 

¿Hay alguien puede ayudar?

+0

Usted está usando GCC 3.4.5. Sería inteligente actualizar, porque es demasiado viejo para ser útil ... – rubenvb

Respuesta

7

Este es un encabezado que declara un grupo de "intrínsecos" - funciones que están integradas en el compilador para que pueda emitir código en línea para ellos. Si está utilizando VC++ como compilador, debería estar en el mismo directorio con sus otros encabezados estándar. Si está utilizando un compilador diferente, deberá cambiar los intrínsecos para adaptarlos al compilador que está utilizando. gcc, por ejemplo, tiene muchas funciones intrínsecas similares, pero con nombres ligeramente diferentes.

Editar: Dado que está utilizando MinGW (es decir, gcc), está bastante atascado con la portación del código (o el uso de VC++). Si se trata de una cantidad bastante pequeña de código, una forma de hacerlo es comentar la línea que incluye ese encabezado e intentar compilarla. El compilador señalará los errores donde se usaron las funciones intrínsecas que no tiene gcc. Luego puede buscarlos (por ejemplo, en MSDN) y tratar de encontrar algo que proporciona gcc que lo haga (lo suficientemente cerca como para) lo mismo. Dependiendo de lo que usa (y de cuánto) puede ser rápido y fácil, o puede ser más fácil comenzar produciendo código nuevo para hacer las mismas cosas.

Los * encabezados intrínsecos que has encontrado (probablemente) contendrán declaraciones de (al menos algunas de) las contrapartes de gcc de Microsoft que debes reemplazar. Probablemente termines usándolos en el proceso de portar el código, así que no te olvides de ellos. Al mismo tiempo, simplemente incluir esos encabezados en lugar de los de Microsoft tampoco hará que el código funcione.

+0

Pero estoy usando eclipse-cdt :( – Mask

+0

Eclipse es un editor/IDE. Lo que importa aquí es qué compilador estás usando * con * Eclipse. –

+0

Utiliza la cadena de herramientas MinGW – Mask

6

Tengo el mismo problema. usando eclipse + cdt + mingw32-gcc7.2 + glm (OpenGL math libraty) Reemplace #include <intrin.h> con #include <x86intrin.h> agrego el indicador a gcc -msse2 y todo funcionó.

Cuestiones relacionadas