Teeworlds: La compilación no se puede compilar en no x86 (debido a immintrin.h)

Creado en 15 dic. 2018  ·  5Comentarios  ·  Fuente: teeworlds/teeworlds

../src/engine/client/client.cpp:5:10: fatal error: immintrin.h: No such file or directory
 #include <immintrin.h> //_mm_pause
          ^~~~~~~~~~~~~
bug build system

Comentario más útil

Copiado de https://github.com/teeworlds/teeworlds/issues/1844#issuecomment -446756342:

Tenga en cuenta que esto aún no se compilará para arquitecturas distintas de las de Intel (y AMD). El código en cuestión es bastante intransitable:

https://github.com/teeworlds/teeworlds/blob/dff453d377e56a1389ca4313767b4f05f61b7985/src/engine/client/client.cpp#L5

https://github.com/teeworlds/teeworlds/blob/dff453d377e56a1389ca4313767b4f05f61b7985/src/engine/client/client.cpp#L1779

Sugiero eliminarlo hasta que se encuentre una solución portátil. El código de Teeworlds (especialmente fuera de src / base / system.c) no debería depender de tales funciones específicas de compilación y arquitectura sin respaldo.

Para elaborar: hay arquitecturas de CPU además de Intel, y no deberíamos depender de una específica. Si lo hacemos, deberíamos hacerlo en src / base / system.c pero sin hacer que la compilación falle en arquitecturas desconocidas.

Todos 5 comentarios

La solución no se transfirió a CMake, creo.
En 64 bits, simplemente puede comentar el #include <immintrin.h> .
Si no funciona, ¿puedes intentar agregar la marca de compilación -msse2 ? Debería arreglarlo afaik.

1844

@ Dune-jr No creo que -msse2 funcione en ppc64le o s390x o arm, porque es específico de x86.

Correcto.
Como está en 64 bits, simplemente debería funcionar sin #include <immintrin.h>

@ Dune-jr también hay brazo de 32 bits;)

Copiado de https://github.com/teeworlds/teeworlds/issues/1844#issuecomment -446756342:

Tenga en cuenta que esto aún no se compilará para arquitecturas distintas de las de Intel (y AMD). El código en cuestión es bastante intransitable:

https://github.com/teeworlds/teeworlds/blob/dff453d377e56a1389ca4313767b4f05f61b7985/src/engine/client/client.cpp#L5

https://github.com/teeworlds/teeworlds/blob/dff453d377e56a1389ca4313767b4f05f61b7985/src/engine/client/client.cpp#L1779

Sugiero eliminarlo hasta que se encuentre una solución portátil. El código de Teeworlds (especialmente fuera de src / base / system.c) no debería depender de tales funciones específicas de compilación y arquitectura sin respaldo.

Para elaborar: hay arquitecturas de CPU además de Intel, y no deberíamos depender de una específica. Si lo hacemos, deberíamos hacerlo en src / base / system.c pero sin hacer que la compilación falle en arquitecturas desconocidas.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

fokkonaut picture fokkonaut  ·  5Comentarios

sepulzera picture sepulzera  ·  5Comentarios

axblk picture axblk  ·  3Comentarios

Sonix- picture Sonix-  ·  3Comentarios

Dune-jr picture Dune-jr  ·  4Comentarios