Teeworlds: 构建无法在非 x86 上构建(因为 immintrin.h)

创建于 2018-12-15  ·  5评论  ·  资料来源: 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

最有用的评论

复制自https://github.com/teeworlds/teeworlds/issues/1844#issuecomment -446756342:

请注意,对于 Intel(和 AMD)以外的体系结构,这仍然无法编译。 有问题的代码非常不可移植:

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

我建议在找到便携式解决方案之前将其删除。 Teeworlds 代码(尤其是在 src/base/system.c 之外)不应依赖于此类特定于编译器和体系结构的函数而无需回退。

详细说明:除了 Intel 之外还有 CPU 架构,我们不应该依赖特定的架构。 如果我们这样做,我们应该在 src/base/system.c 中进行,但不要在未知架构上编译失败。

所有5条评论

我相信,该修复程序未移植到 CMake。
在 64 位上,您可以简单地注释掉#include <immintrin.h>
如果它不起作用,您可以尝试添加编译标志-msse2吗? 它应该修复它afaik。

1844

@Dune-jr 我认为-msse2不适用于 ppc64le 或 s390x 或 arm,因为它是特定于 x86 的。

对。
由于您使用的是 64 位,因此它应该可以在没有#include <immintrin.h>情况下正常工作

@Dune-jr 还有 32bit arm ;)

复制自https://github.com/teeworlds/teeworlds/issues/1844#issuecomment -446756342:

请注意,对于 Intel(和 AMD)以外的体系结构,这仍然无法编译。 有问题的代码非常不可移植:

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

我建议在找到便携式解决方案之前将其删除。 Teeworlds 代码(尤其是在 src/base/system.c 之外)不应依赖于此类特定于编译器和体系结构的函数而无需回退。

详细说明:除了 Intel 之外还有 CPU 架构,我们不应该依赖特定的架构。 如果我们这样做,我们应该在 src/base/system.c 中进行,但不要在未知架构上编译失败。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

AssassinTee picture AssassinTee  ·  4评论

fokkonaut picture fokkonaut  ·  5评论

Dune-jr picture Dune-jr  ·  4评论

Dune-jr picture Dune-jr  ·  4评论

Fisico picture Fisico  ·  5评论