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はx86固有であるため、ppc64le、s390x、またはarmでは機能しないと思います。

右。
64ビットを使用しているため、 #include <immintrin.h>なくても簡単に機能するはずです。

@ Dune-jr 32ビットアームもあります;)

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 評価