-
Notifications
You must be signed in to change notification settings - Fork 24
All: Cross platform support
NeuroField development is currently based on Linux systems. However, NeuroField has been run successfully on MacOS. Unfortunately, we have tested the code under Windows.
Some options below
If you get the following error
Error: suffix or operands invalid for (something), Error: no such instruction:
We have seen this error on some of the newest School of Physics machines. The error looks like
/tmp/ccbp1n2t.s:2093: Error: suffix or operands invalid for `vpand'
or
/tmp/ccOwep2t.s:4537: Error: no such instruction: `vpermpd $27,(%rdi),%ymm4'
The root cause of this problem is an old version of the as
tool included in GNU binutils. If you are on a School of Physics system, this problem can be resolved by using a newer version. If you are managing your own system, you should ensure that the binutils
package is up to date. As a temporary solution, this can be fixed by removing the march=native
and mtune=native
switches from the GCC command in the makefile.
We have not tested compiling NeuroField in Visual Studio or with any compiler other than GCC. We have successfully built and run NeuroField for Windows by using the mingw cross compiler, which runs on Linux. In Arch Linux, the relevant package is mingw-w64
. After installing mingw, the compiler command is
x86_64-w64-mingw32-g++ -lm -Wall -O3 -msse -msse2 -msse3 -mfpmath=sse -funroll-loops -flto -m64 -std=gnu++11 -static -static-libgcc -static-libstdc++
Most of the command flags are present from the standard compiler command, except those relating to tuning based on the native architecture. The most important thing is static linking of libgcc
and libstdc++
. If the static switches are omitted, you will have to find the relevant DLLs on the Linux system, and copy them along with the _NeuroField _ binary to the Windows system that NeuroField is being run on.
You're lucky!. You can install a Linux subsystem under Windows and run NeuroField following the regular installation and compiling instructions.
Here are some useful links to instructions on how to get a VM going.
Seriously. Don't. Just switch to Linux already.
© Brain Dynamics Group, University of Sydney 2015