Teeworlds: فشل البناء في البناء على غير x86 (بسبب immintrin.h)

تم إنشاؤها على ١٥ ديسمبر ٢٠١٨  ·  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 ، ولا ينبغي لنا الاعتماد على معمارية محددة. إذا فعلنا ذلك ، يجب أن نفعل ذلك في 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 هناك أيضًا ذراع 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 ، ولا ينبغي لنا الاعتماد على معمارية محددة. إذا فعلنا ذلك ، يجب أن نفعل ذلك في src / base / system.c ولكن لا نجعل التجميع يفشل في البنى غير المعروفة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات