Error during configure and build MRtrix3

I got one error during the configure step after I upgrade all dependencies, and there were more error during the build step.


Here is the configure log:

REPORT: 
MRtrix build type requested: release version

REPORT: Detecting OS: linux

REPORT: Looking for compiler [clang++]:
EXEC <<
CMD: clang++ --version
EXIT: 0
STDOUT:
clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
>>


REPORT: clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)

REPORT: Checking for C++11 compliance:

COMPILE /tmp/tmpztp_xyrq.cpp:
---

#include <cstddef>
struct Base {
    Base (int);
};
struct Derived : Base {
    using Base::Base;
};

int main() {
  Derived D (int); // check for contructor inheritance
  return 0;
}

---
EXEC <<
CMD: clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC /tmp/tmpztp_xyrq.cpp -o /tmp/tmpztp_xyrq.o
EXIT: 0
>>

EXEC <<
CMD: clang++ /tmp/tmpztp_xyrq.o -Wl,--sort-common,--as-needed -pthread -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
>>


REPORT: ok

REPORT: Checking shared library generation:
EXEC <<
CMD: clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC /tmp/tmpihqtmh_u.cpp -o /tmp/tmpihqtmh_u.o
EXIT: 0
>>

EXEC <<
CMD: clang++ /tmp/tmpihqtmh_u.o -shared -Wl,--sort-common,--as-needed -pthread -o libtest.so
EXIT: 0
>>


REPORT: ok

REPORT: Detecting pointer size:

COMPILE /tmp/tmpbtmxkh8g.cpp:
---

#include <iostream>
int main() {
  std::cout << sizeof(void*);
  return (0);
}

---
EXEC <<
CMD: clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC /tmp/tmpbtmxkh8g.cpp -o /tmp/tmpbtmxkh8g.o
EXIT: 0
>>

EXEC <<
CMD: clang++ /tmp/tmpbtmxkh8g.o -Wl,--sort-common,--as-needed -pthread -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
STDOUT:
8
>>


REPORT: 64 bit

REPORT: Detecting byte order:

REPORT: little-endian

REPORT: Checking for variable-length array support:

COMPILE /tmp/tmpadqhq37n.cpp:
---

int main(int argc, char* argv[]) {
  int x[argc];
  return 0;
}

---
EXEC <<
CMD: clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 /tmp/tmpadqhq37n.cpp -o /tmp/tmpadqhq37n.o
EXIT: 0
>>

EXEC <<
CMD: clang++ /tmp/tmpadqhq37n.o -Wl,--sort-common,--as-needed -pthread -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
>>


REPORT: ok

REPORT: Checking for non-POD variable-length array support:

COMPILE /tmp/tmpcexk3cke.cpp:
---

#include <string>

class X {
  int x;
  double y;
  std::string s;
};

int main(int argc, char* argv[]) {
  X x[argc];
  return 0;
}

---
EXEC <<
CMD: clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 /tmp/tmpcexk3cke.cpp -o /tmp/tmpcexk3cke.o
EXIT: 1
STDERR:
/tmp/tmpcexk3cke.cpp:11:6: error: variable length array of non-POD element type 'X'
  X x[argc];
     ^
1 error generated.
>>

error deleting temporary file "/tmp/tmpcexk3cke.o": No such file or directory
REPORT: not found

REPORT: Checking for ::max_align_t:

COMPILE /tmp/tmpbqhk18bx.cpp:
---

#include <iostream>
#include <cstddef>
using ::max_align_t;
int main() {
  std::cout << alignof (max_align_t) << " bytes\n";
  return 0;
}

---
EXEC <<
CMD: clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_NO_NON_POD_VLA /tmp/tmpbqhk18bx.cpp -o /tmp/tmpbqhk18bx.o
EXIT: 0
>>

EXEC <<
CMD: clang++ /tmp/tmpbqhk18bx.o -Wl,--sort-common,--as-needed -pthread -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
STDOUT:
16 bytes
>>


REPORT: 16 bytes

REPORT: Checking for std::max_align_t:

COMPILE /tmp/tmp__q1zj9u.cpp:
---

#include <iostream>
#include <cstddef>
using std::max_align_t;
int main() {
  std::cout << alignof (max_align_t) << " bytes\n";
  return 0;
}

---
EXEC <<
CMD: clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_NO_NON_POD_VLA /tmp/tmp__q1zj9u.cpp -o /tmp/tmp__q1zj9u.o
EXIT: 0
>>

EXEC <<
CMD: clang++ /tmp/tmp__q1zj9u.o -Wl,--sort-common,--as-needed -pthread -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
STDOUT:
16 bytes
>>


REPORT: 16 bytes
EXEC <<
CMD: pkg-config --cflags eigen3
EXIT: 0
STDOUT:
-I/usr/local/include/eigen3
>>


REPORT: Checking for Eigen3 library:

COMPILE /tmp/tmplcgzgjhj.cpp:
---

#include <cstddef>
#include <Eigen/Core>
#include <iostream>

int main (int argc, char* argv[]) {
  std::cout << EIGEN_WORLD_VERSION << "." << EIGEN_MAJOR_VERSION << "." << EIGEN_MINOR_VERSION << "\n";
  return 0;
}

---
EXEC <<
CMD: clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_NO_NON_POD_VLA -isystem /usr/local/include/eigen3 /tmp/tmplcgzgjhj.cpp -o /tmp/tmplcgzgjhj.o
EXIT: 0
>>

EXEC <<
CMD: clang++ /tmp/tmplcgzgjhj.o -Wl,--sort-common,--as-needed -pthread -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
STDOUT:
3.3.90
>>


REPORT: 3.3.90
EXEC <<
CMD: pkg-config --cflags zlib
EXIT: 0
>>

EXEC <<
CMD: pkg-config --libs zlib
EXIT: 0
STDOUT:
-lz
>>


REPORT: Checking for zlib compression library:

COMPILE /tmp/tmprlun2epm.cpp:
---

#include <iostream>
#include <zlib.h>

int main() {
  std::cout << zlibVersion();
  return (0);
}

---
EXEC <<
CMD: clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_NO_NON_POD_VLA /tmp/tmprlun2epm.cpp -o /tmp/tmprlun2epm.o
EXIT: 0
>>

EXEC <<
CMD: clang++ /tmp/tmprlun2epm.o -Wl,--sort-common,--as-needed -pthread -lz -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
STDOUT:
1.2.8
>>


REPORT: 1.2.8

REPORT: Checking for "JSON for Modern C++" requirements:

COMPILE /tmp/tmpz8r5g0ln.cpp:
---

#include "file/json.h"
int main (int argc, char* argv[])
{
  nlohmann::json json;
  json["key"] = "value";
}

---
EXEC <<
CMD: clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_NO_NON_POD_VLA -I/home/user/mrtrix3/core /tmp/tmpz8r5g0ln.cpp -o /tmp/tmpz8r5g0ln.o
EXIT: 0
>>

EXEC <<
CMD: clang++ /tmp/tmpz8r5g0ln.o -Wl,--sort-common,--as-needed -pthread -lz -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
>>


REPORT: ok
EXEC <<
CMD: pkg-config --cflags libtiff-4
EXIT: 0
STDOUT:
-I/usr/include/x86_64-linux-gnu
>>

EXEC <<
CMD: pkg-config --libs libtiff-4
EXIT: 0
STDOUT:
-ltiff
>>


REPORT: Checking for TIFF library:

COMPILE /tmp/tmp5bqawnki.cpp:
---

#include <iostream>
#include <tiffio.h>

int main() {
  std::cout << TIFFGetVersion();
  return (0);
}

---
EXEC <<
CMD: clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_NO_NON_POD_VLA -isystem /usr/include/x86_64-linux-gnu /tmp/tmp5bqawnki.cpp -o /tmp/tmp5bqawnki.o
EXIT: 0
>>

EXEC <<
CMD: clang++ /tmp/tmp5bqawnki.o -Wl,--sort-common,--as-needed -pthread -lz -ltiff -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
STDOUT:
LIBTIFF, Version 4.0.6
Copyright (c) 1988-1996 Sam Leffler
Copyright (c) 1991-1996 Silicon Graphics, Inc.
>>


REPORT: LIBTIFF, Version 4.0.6
EXEC <<
CMD: pkg-config --cflags fftw3
EXIT: 0
>>

EXEC <<
CMD: pkg-config --libs fftw3
EXIT: 0
STDOUT:
-lfftw3
>>


REPORT: Checking for FFTW library:

COMPILE /tmp/tmpz24aqul8.cpp:
---

#include <iostream>
#include <fftw3.h>

int main() {
  std::cout << fftw_version << "\n";
  return (0);
}

---
EXEC <<
CMD: clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_NO_NON_POD_VLA -DMRTRIX_TIFF_SUPPORT -isystem /usr/include/x86_64-linux-gnu /tmp/tmpz24aqul8.cpp -o /tmp/tmpz24aqul8.o
EXIT: 0
>>

EXEC <<
CMD: clang++ /tmp/tmpz24aqul8.o -Wl,--sort-common,--as-needed -pthread -lz -ltiff -lfftw3 -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
STDOUT:
fftw-3.3.4-sse2-avx
>>


REPORT: fftw-3.3.4-sse2-avx

REPORT: Checking for Qt moc:
EXEC <<
CMD: moc -v
EXIT: 1
STDERR:
Qt Meta Object Compiler version 63 (Qt 4.8.7)
>>


REPORT: moc (version 4.8.7)

REPORT: Checking for Qt qmake:
EXEC <<
CMD: qmake -v
EXIT: 0
STDOUT:
QMake version 2.01a
Using Qt version 4.8.7 in /usr/lib/x86_64-linux-gnu
>>


REPORT: qmake (version 4.8.7)

REPORT: Checking for Qt rcc:
EXEC <<
CMD: rcc -v
EXIT: 1
STDERR:
Qt Resource Compiler version 4.8.7
>>


REPORT: rcc (version 4.8.7)

REPORT: Checking for Qt:

source file "qt.h":
---
#include <QObject>

class Foo: public QObject {
  Q_OBJECT;
  public:
    Foo();
    ~Foo();
  public slots:
    void setValue(int value);
  signals:
    void valueChanged (int newValue);
  private:
    int value_;
};
---

source file "qt.cpp":
---
#include <iostream>
#include "qt.h"

Foo::Foo() : value_ (42) { connect (this, SIGNAL(valueChanged(int)), this, SLOT(setValue(int))); }

Foo::~Foo() { std::cout << qVersion() << "\n"; }

void Foo::setValue (int value) { value_ = value; }

int main() { Foo f; }
---

project file "qt.pro":
---
CONFIG += c++11
QT += core gui opengl svg
HEADERS += qt.h
SOURCES += qt.cpp
---
EXEC <<
CMD: qmake
EXIT: 0
>>

EXEC <<
CMD: moc qt.h -o qt_moc.cpp
EXIT: 0
>>

EXEC <<
CMD: clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_NO_NON_POD_VLA -DMRTRIX_TIFF_SUPPORT -isystem /usr/include/x86_64-linux-gnu -DEIGEN_FFTW_DEFAULT -m64 -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -isystem /usr/share/qt4/mkspecs/linux-g++-64 -isystem /usr/include/qt4/QtCore -isystem /usr/include/qt4/QtGui -isystem /usr/include/qt4/QtOpenGL -isystem /usr/include/qt4/QtSvg -isystem /usr/include/qt4 -isystem /usr/X11R6/include qt.cpp -o qt.o
EXIT: 0
>>

EXEC <<
CMD: clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_NO_NON_POD_VLA -DMRTRIX_TIFF_SUPPORT -isystem /usr/include/x86_64-linux-gnu -DEIGEN_FFTW_DEFAULT -m64 -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -isystem /usr/share/qt4/mkspecs/linux-g++-64 -isystem /usr/include/qt4/QtCore -isystem /usr/include/qt4/QtGui -isystem /usr/include/qt4/QtOpenGL -isystem /usr/include/qt4/QtSvg -isystem /usr/include/qt4 -isystem /usr/X11R6/include qt_moc.cpp -o qt_moc.o
EXIT: 0
>>

EXEC <<
CMD: clang++ -Wl,--sort-common,--as-needed -pthread -lz -ltiff -lfftw3 qt_moc.o qt.o -o qt -m64 -Wl,-O1 -L/usr/lib/x86_64-linux-gnu -L/usr/X11R6/lib64 -lQtSvg -lQtOpenGL -lQtGui -lQtCore -lGL -lpthread
EXIT: 0
>>

EXEC <<
CMD: /tmp/tmp49zjrout/qt
EXIT: 0
STDOUT:
4.8.7
>>


REPORT: 4.8.7

And here is a part of the build log:

ERROR: ( 56/504) [CC] tmp/core/mrtrix.o

ERROR: ( 56/504) [CC] tmp/core/mrtrix.o

clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_NO_NON_POD_VLA -DMRTRIX_TIFF_SUPPORT -isystem /usr/include/x86_64-linux-gnu -DEIGEN_FFTW_DEFAULT -Wall -O3 -DNDEBUG -Isrc -I./core -Icmd -isystem /usr/local/include/eigen3 -DEIGEN_DONT_PARALLELIZE core/mrtrix.cpp -o tmp/core/mrtrix.o

failed with output

In file included from core/mrtrix.cpp:16:
In file included from ./core/mrtrix.h:36:
./core/types.h:319:9: error: redefinition of 'Vector3' as different kind of symbol
  using Vector3 = Matrix<MR::default_type, 3, 1>;
        ^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:539:1: note: previous definition is here
EIGEN_MAKE_TYPEDEFS(3, 3)
^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:521:67: note: expanded from macro 'EIGEN_MAKE_TYPEDEFS'
template <typename Type>                                          \
                                                                  ^
In file included from core/mrtrix.cpp:16:
In file included from ./core/mrtrix.h:36:
./core/types.h:320:9: error: redefinition of 'Vector4' as different kind of symbol
  using Vector4 = Matrix<MR::default_type, 4, 1>;
        ^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:540:1: note: previous definition is here
EIGEN_MAKE_TYPEDEFS(4, 4)
^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:521:67: note: expanded from macro 'EIGEN_MAKE_TYPEDEFS'
template <typename Type>                                          \
                                                                  ^
2 errors generated.
ERROR: (  8/505) [CC] tmp/core/math/SH.o

ERROR: (  8/505) [CC] tmp/core/math/SH.o

clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_NO_NON_POD_VLA -DMRTRIX_TIFF_SUPPORT -isystem /usr/include/x86_64-linux-gnu -DEIGEN_FFTW_DEFAULT -Wall -O3 -DNDEBUG -Isrc -I./core -Icmd -isystem /usr/local/include/eigen3 -DEIGEN_DONT_PARALLELIZE core/math/SH.cpp -o tmp/core/math/SH.o

failed with output

In file included from core/math/SH.cpp:16:
In file included from ./core/math/SH.h:19:
In file included from ./core/math/legendre.h:19:
In file included from ./core/math/math.h:22:
./core/types.h:319:9: error: redefinition of 'Vector3' as different kind of symbol
  using Vector3 = Matrix<MR::default_type, 3, 1>;
        ^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:539:1: note: previous definition is here
EIGEN_MAKE_TYPEDEFS(3, 3)
^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:521:67: note: expanded from macro 'EIGEN_MAKE_TYPEDEFS'
template <typename Type>                                          \
                                                                  ^
In file included from core/math/SH.cpp:16:
In file included from ./core/math/SH.h:19:
In file included from ./core/math/legendre.h:19:
In file included from ./core/math/math.h:22:
./core/types.h:320:9: error: redefinition of 'Vector4' as different kind of symbol
  using Vector4 = Matrix<MR::default_type, 4, 1>;
        ^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:540:1: note: previous definition is here
EIGEN_MAKE_TYPEDEFS(4, 4)
^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:521:67: note: expanded from macro 'EIGEN_MAKE_TYPEDEFS'
template <typename Type>                                          \
                                                                  ^
2 errors generated.
ERROR: ( 21/505) [CC] tmp/core/bitset.o

ERROR: ( 21/505) [CC] tmp/core/bitset.o

clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_NO_NON_POD_VLA -DMRTRIX_TIFF_SUPPORT -isystem /usr/include/x86_64-linux-gnu -DEIGEN_FFTW_DEFAULT -Wall -O3 -DNDEBUG -Isrc -I./core -Icmd -isystem /usr/local/include/eigen3 -DEIGEN_DONT_PARALLELIZE core/bitset.cpp -o tmp/core/bitset.o

failed with output

In file included from core/bitset.cpp:16:
In file included from ./core/bitset.h:22:
In file included from ./core/mrtrix.h:36:
./core/types.h:319:9: error: redefinition of 'Vector3' as different kind of symbol
  using Vector3 = Matrix<MR::default_type, 3, 1>;
        ^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:539:1: note: previous definition is here
EIGEN_MAKE_TYPEDEFS(3, 3)
^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:521:67: note: expanded from macro 'EIGEN_MAKE_TYPEDEFS'
template <typename Type>                                          \
                                                                  ^
In file included from core/bitset.cpp:16:
In file included from ./core/bitset.h:22:
In file included from ./core/mrtrix.h:36:
./core/types.h:320:9: error: redefinition of 'Vector4' as different kind of symbol
  using Vector4 = Matrix<MR::default_type, 4, 1>;
        ^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:540:1: note: previous definition is here
EIGEN_MAKE_TYPEDEFS(4, 4)
^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:521:67: note: expanded from macro 'EIGEN_MAKE_TYPEDEFS'
template <typename Type>                                          \
                                                                  ^
2 errors generated.
ERROR: ( 34/505) [CC] tmp/core/file/ofstream.o

ERROR: ( 34/505) [CC] tmp/core/file/ofstream.o

clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_NO_NON_POD_VLA -DMRTRIX_TIFF_SUPPORT -isystem /usr/include/x86_64-linux-gnu -DEIGEN_FFTW_DEFAULT -Wall -O3 -DNDEBUG -Isrc -I./core -Icmd -isystem /usr/local/include/eigen3 -DEIGEN_DONT_PARALLELIZE core/file/ofstream.cpp -o tmp/core/file/ofstream.o

failed with output

In file included from core/file/ofstream.cpp:16:
In file included from ./core/file/ofstream.h:23:
./core/types.h:319:9: error: redefinition of 'Vector3' as different kind of symbol
  using Vector3 = Matrix<MR::default_type, 3, 1>;
        ^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:539:1: note: previous definition is here
EIGEN_MAKE_TYPEDEFS(3, 3)
^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:521:67: note: expanded from macro 'EIGEN_MAKE_TYPEDEFS'
template <typename Type>                                          \
                                                                  ^
In file included from core/file/ofstream.cpp:16:
In file included from ./core/file/ofstream.h:23:
./core/types.h:320:9: error: redefinition of 'Vector4' as different kind of symbol
  using Vector4 = Matrix<MR::default_type, 4, 1>;
        ^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:540:1: note: previous definition is here
EIGEN_MAKE_TYPEDEFS(4, 4)
^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:521:67: note: expanded from macro 'EIGEN_MAKE_TYPEDEFS'
template <typename Type>                                          \
                                                                  ^
2 errors generated.
ERROR: ( 17/505) [CC] tmp/core/signal_handler.o

ERROR: ( 17/505) [CC] tmp/core/signal_handler.o

clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_NO_NON_POD_VLA -DMRTRIX_TIFF_SUPPORT -isystem /usr/include/x86_64-linux-gnu -DEIGEN_FFTW_DEFAULT -Wall -O3 -DNDEBUG -Isrc -I./core -Icmd -isystem /usr/local/include/eigen3 -DEIGEN_DONT_PARALLELIZE core/signal_handler.cpp -o tmp/core/signal_handler.o

failed with output

In file included from core/signal_handler.cpp:24:
In file included from ./core/app.h:27:
In file included from ./core/cmdline_option.h:27:
In file included from ./core/mrtrix.h:36:
./core/types.h:319:9: error: redefinition of 'Vector3' as different kind of symbol
  using Vector3 = Matrix<MR::default_type, 3, 1>;
        ^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:539:1: note: previous definition is here
EIGEN_MAKE_TYPEDEFS(3, 3)
^
/usr/local/include/eigen3/Eigen/src/Core/Matrix.h:521:67: note: expanded from macro 'EIGEN_MAKE_TYPEDEFS'
template <typename Type>                                          \
                                                                  ^

I’ve also noticed errors like this when using the development version of Eigen. The latest stable release is 3.3.7, whereas you’re using 3.3.90:

I’m not sure where you got this version from, but it’s not one that came from your distribution, since it’s been installed in /usr/local, which is typically reserved for manually-installed packages:

I recommend you remove this version, use apt-get to install the Ubuntu version (libeigen3-dev), and try ./configure && ./build again.

It worked, thank you.
And there is another question that when I run my pre-processing script, it says dwipreproc command not found, main_cor_dti_1.sh: line 430: dwipreproc: command not found, part of my script is as follows:

# topup/eddy corrections
if [ ! -f "$PRD"/connectivity/predwi_denoised_preproc.mif ]; then
  view_step=1
  if [ "$TOPUP" = "eddy_correct" ]; then
    # eddy and maybe topup corrections depending of the encoding scheme
    # TODO: removed repol option for now, as it is not in current FSL debian release
    #add -eddy_options " --slm=linear --data_is_shelled "
    echo "apply eddy and maybe topup if reverse phase-encoding scheme"
    dwipreproc $PRD/connectivity/predwi_denoised.mif \
               $PRD/connectivity/predwi_denoised_preproc.mif \
               -export_grad_mrtrix $PRD/connectivity/bvecs_bvals_final \
               -rpe_header -force -nthreads "$NB_THREADS" -eddy_options " --slm=linear --data_is_shelled "   
   # read -n 1 -p "869 Press any key to continue..."
  else # no topup/eddy
    echo "no topup/eddy applied"
    mrconvert $PRD/connectivity/predwi_denoised.mif \
              $PRD/connectivity/predwi_denoised_preproc.mif \
              -export_grad_mrtrix $PRD/connectivity/bvecs_bvals_final \
              -force -nthreads "$NB_THREADS"
  fi

That’s why I reinstalled the MRtrix3.
My ubuntu version is 16.04, the FSL version is 6.0.4.

That command is now called dwifslpreproc (see release notes here). There’s been quite a few changes introduced by 3.0.0, it’s worth reading the full change log when upgrading to avoid surprises like this…

Oh yes that’s really surprising when I run this same command six months later :sweat_smile:. Thank you again Mr. Tournier :blush:.