nanogui icon indicating copy to clipboard operation
nanogui copied to clipboard

Can not build on Raspberry PI 4

Open hungin opened this issue 5 years ago • 6 comments

I have a problem building nanogui on Raspian. Enoki trows a lot of errors and wan't build /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array_neon.h:56:81: error: expected identifier before ‘alignas’ ol Approx_, bool IsMask_, typename Derived_> struct ENOKI_MAY_ALIAS alignas(16) ^~~~~~~ /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array.h:75:8: error: invalid use of incomplete type ‘struct enoki::StaticArrayImpl<float, 4, true, (enoki::RoundingMode)4, false, enoki::Array<float, 4>, int>’ struct Array : StaticArrayImpl<Value_, Size_, Approx_, Mode_, false, /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array_generic.h:138:26: error: type ‘enoki::Array<float, 4>::Base’ {aka ‘enoki::StaticArrayImpl<float, 4, true, (enoki::RoundingMode)4, false, enoki::Array<float, 4>, int>’} is not a base type for type ‘enoki::Array<float, 4>’ using typename Base::Derived; \ ^~~~~~~ /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array_generic.h:147:5: note: in expansion of macro ‘ENOKI_ARRAY_IMPORT_BASIC’ ENOKI_ARRAY_IMPORT_BASIC(Base, Array) \ ^~~~~~~~~~~~~~~~~~~~~~~~ /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array.h:92:5: note: in expansion of macro ‘ENOKI_ARRAY_IMPORT’ ENOKI_ARRAY_IMPORT(Base, Array) ^~~~~~~~~~~~~~~~~~ /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array_generic.h:139:26: error: type ‘enoki::Array<float, 4>::Base’ {aka ‘enoki::StaticArrayImpl<float, 4, true, (enoki::RoundingMode)4, false, enoki::Array<float, 4>, int>’} is not a base type for type ‘enoki::Array<float, 4>’ using typename Base::Value; \ ^~~~~ /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array_generic.h:147:5: note: in expansion of macro ‘ENOKI_ARRAY_IMPORT_BASIC’ ENOKI_ARRAY_IMPORT_BASIC(Base, Array) \ ^~~~~~~~~~~~~~~~~~~~~~~~ /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array.h:92:5: note: in expansion of macro ‘ENOKI_ARRAY_IMPORT’ ENOKI_ARRAY_IMPORT(Base, Array) ^~~~~~~~~~~~~~~~~~ /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array_generic.h:140:26: error: type ‘enoki::Array<float, 4>::Base’ {aka ‘enoki::StaticArrayImpl<float, 4, true, (enoki::RoundingMode)4, false, enoki::Array<float, 4>, int>’} is not a base type for type ‘enoki::Array<float, 4>’ using typename Base::Scalar; and a lot more! Any suggestions how to fix this?

hungin avatar Feb 09 '20 11:02 hungin

Can you try re-compiling with current master branch? Enoki was removed as a hard dependency. But NanoGUI still requires a C++17 capable compiler (e.g., if constexpr), which seems to have been your original problem -- compiler not new enough? Maybe you can get a newer one?

svenevs avatar Feb 20 '20 16:02 svenevs

I tried it with the latest master and the latest gcc 8.3 that comes with Raspian, so the compiler should actually work, but still the same errors.

hungin avatar Feb 20 '20 16:02 hungin

Are you sure you tried the latest master? Enoki was removed a few days after you opened this, so you shouldn't be getting the same error messages as above. Are there new ones that showed up?

svenevs avatar Feb 20 '20 16:02 svenevs

2 day ago

hungin avatar Feb 20 '20 16:02 hungin

Please perform a fresh clone (delete the whole tree and re-clone), in the Enoki removal some artifacts in the build system may be causing you grief since I think the ext/enoki folder will still be there if you just did git pull.

Please paste the updated output, it should at the very least be erroring in a different file. I'm revising the build system and can try to support this if you provide me with enough information to help you.

svenevs avatar Feb 20 '20 17:02 svenevs

I did that, but I give it again a try

hungin avatar Feb 20 '20 17:02 hungin