ERROR: error compiling Eigen3 application!


#1

I think I am missing qt. How would I install it with msys2?

Could I have also used the Linux subsystem on windows 10?

I installed msys2 on windows 10 as the instructions suggest.

pacman -Syuu
pacman -S git python pkg-config mingw-w64-x86_64-gcc mingw-w64-x86_64-eigen3 mingw-w64-x86_64-qt5 mingw-w64-x86_64-fftw 

then

git clone https://github.com/MRtrix3/mrtrix3.git
cd mrtrix3
./configure

I get the following error

ERROR: error compiling Eigen3 application!

    MRtrix3 was unable to compile a test program involving Eigen3.

  Set the EIGEN_CFLAGS environment variable to inform 'configure' of
  the flags it must provide to the compiler in order to compile
  programs that use Eigen3 functionality; this may include the path to
  the Eigen3 include files, as well as any required flags.
  For example:
    $ export EIGEN_CFLAGS="-isystem /usr/include/eigen3"
    $./configure
  (amend with the actual path to the Eigen3 include files on your system)

Error relating to C++ compiler when running ./configure on Windows
#2

Ok, this seems to be the problem that I posted about earlier today. There is indeed an issue with the procedure, which is probably a result of recent changes in MSYS2.

I’ve just pushed a fix for this that’ll hopefully handle this more gracefully, but it’s not yet merged. In the meantime, the workaround I suggest is to replace:

$ ./configure
$ ./build

with:

$ /usr/bin/python ./configure
$ /usr/bin/python ./build

Other random notes:

I’m not sure what makes you say that…? The error message is about Eigen3, which is unrelated to Qt…

Yes and no. You can build MRtrix3 on WSL, but you can’t run mrview yet - see discussion e.g. here.


#3

$ /usr/bin/python ./configure

has the same result.

I found eigen3 here /mingw64/include/eigen3
I did

ln -s /mingw64/include/* /usr/include
then I was able to run configure

I didn’t need to be explicit about python running configure.
I was able to run it like the instructions say after I did the linking I mentioned.


#6

OK, that really shouldn’t be required… I’m surprised about this, the only reason I can think of that might explain this would that you’re not using the MinGW 64-bit shell (things won’t work using the 32-bit or MSYS-only shell)…? But then I’d expect things to fall over much earlier if that was the case. Any chance you could post the contents of your configure.log file after a failed ./configure…?


#7

This was for a coworker. I no longer have the machine. They had requested mrtrix3 installed (I’m IT) I am sure I installed the 64-bit msys2.

I did not do any of the “git config” commands because those are for developers.
The set_path I undid as I wanted it in the /etc/bash.bashrc for all users.

mrview ran as she expected. I watched her open a file and look at the brain pictures she had on it. So I left it with her.

Apparently she knows how to use mrview. I do not. I tinker with some cross platform things once in awhile. I use to use cygwin and had tinkered with the linux subsystem. This was the first time I had seen msys2 I found it rather intriguing knowing it had the build tools so easily installable and upgradable with “pacman -Syuu”. I could try the install again on a windows 10 vm I have at home when I get a chance. But I usually use linux machines myself.


#8

Ahh that is it I was using msys2 shell not the mingw64 shell. I missed the line saying to run

MinGW-w64 Win64 Shell

I just opened the msys2.exe that I saw when I installed it.


#9

OK, that makes sense. Thanks for reporting back! MSYS2 is a great project, but it does have a few rough edges… I wish there was a simpler way - maybe when we start shipping precompiled binaries, which shouldn’t be too long…