I’m getting the following error:
./configure
MRtrix build type requested: release
Detecting OS: linux
Checking for C++11 compliant compiler [g++]: 4.8.2 - tested ok
Detecting pointer size: 64 bit
Detecting byte order: little-endian
Checking for variable-length array support: yes
Checking for non-POD variable-length array support: yes
Checking for zlib compression library: 1.2.3
Checking for Eigen 3 library: ('Unexpected error:', "(<type 'exceptions.TypeError'>, TypeError('execv() arg 2 must contain only strings',), <traceback object at 0x9f5b00>)")
ERROR: unexpected exception!
See the file 'configure.log' for details. If this doesn't help and you need
further assistance, please post on the MRtrix3 community forum
(http://community.mrtrix.org/), and make sure to include the full contents of
the 'configure.log' file.
According to instructions, I started with the following command:
yum install git g++ python numpy eigen3-devel zlib-devel libqt4-devel libgl1-mesa-dev
But I still lacked the proper g++ (4.4.7 is sstandard)
rpm --import http://ftp.scientificlinux.org/linux/scientific/5x/x86_64/RPM-GPG-KEYs/RPM-GPG-KEY-cern
wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
yum install devtoolset-2
scl enable devtoolset-2 bash
g++ --version
g++ (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)
configure.log
REPORT:
MRtrix build type requested:
REPORT: release
REPORT:
REPORT: Detecting OS: linux
REPORT: Checking for C++11 compliant compiler [g++]:
EXEC <<
CMD: g++ -dumpversion
EXIT: 0
STDOUT:
4.8.2
>>
REPORT: 4.8.2
COMPILE /tmp/tmpGw4LE2.cpp:
---
struct Base {
Base (int);
};
struct Derived : Base {
using Base::Base;
};
int main() {
Derived D (int); // check for contructor inheritance
return (0);
}
---
EXEC <<
CMD: g++ -c -std=c++11 -pthread -fPIC -march=native /tmp/tmpGw4LE2.cpp -o /tmp/tmpGw4LE2.o
EXIT: 0
>>
EXEC <<
CMD: g++ /tmp/tmpGw4LE2.o -pthread -o a.out
EXIT: 0
>>
EXEC <<
CMD: ./a.out
EXIT: 0
>>
REPORT: - tested ok
REPORT: Detecting pointer size:
COMPILE /tmp/tmpboSmLV.cpp:
---
#include <iostream>
int main() {
std::cout << sizeof(void*);
return (0);
}
---
EXEC <<
CMD: g++ -c -std=c++11 -pthread -fPIC -march=native /tmp/tmpboSmLV.cpp -o /tmp/tmpboSmLV.o
EXIT: 0
>>
EXEC <<
CMD: g++ /tmp/tmpboSmLV.o -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/tmpg5J6lY.cpp:
---
int main(int argc, char* argv[]) {
int x[argc];
return 0;
}
---
EXEC <<
CMD: g++ -c -std=c++11 -pthread -fPIC -march=native -DMRTRIX_WORD64 /tmp/tmpg5J6lY.cpp -o /tmp/tmpg5J6lY.o
EXIT: 0
>>
EXEC <<
CMD: g++ /tmp/tmpg5J6lY.o -pthread -o a.out
EXIT: 0
>>
EXEC <<
CMD: ./a.out
EXIT: 0
>>
REPORT: yes
REPORT: Checking for non-POD variable-length array support:
COMPILE /tmp/tmpvYU3JY.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: g++ -c -std=c++11 -pthread -fPIC -march=native -DMRTRIX_WORD64 /tmp/tmpvYU3JY.cpp -o /tmp/tmpvYU3JY.o
EXIT: 0
>>
EXEC <<
CMD: g++ /tmp/tmpvYU3JY.o -pthread -o a.out
EXIT: 0
>>
EXEC <<
CMD: ./a.out
EXIT: 0
>>
REPORT: yes
REPORT: Checking for zlib compression library:
COMPILE /tmp/tmpkYgWcE.cpp:
---
#include <iostream>
#include <zlib.h>
int main() {
std::cout << zlibVersion();
return (0);
}
---
EXEC <<
CMD: g++ -c -std=c++11 -pthread -fPIC -march=native -DMRTRIX_WORD64 /tmp/tmpkYgWcE.cpp -o /tmp/tmpkYgWcE.o
EXIT: 0
>>
EXEC <<
CMD: g++ /tmp/tmpkYgWcE.o -pthread -lz -o a.out
EXIT: 0
>>
EXEC <<
CMD: ./a.out
EXIT: 0
STDOUT:
1.2.3
>>
REPORT: 1.2.3
REPORT: Checking for Eigen 3 library:
EXEC <<
CMD: pkg-config --cflags eigen3
EXIT: 0
STDOUT:
-I/usr/include/eigen3
>>
COMPILE /tmp/tmp2BZ5pA.cpp:
---
#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: g++ -c -std=c++11 -pthread -fPIC -march=native -DMRTRIX_WORD64 -I/usr/include/eigen3 /tmp/tmp2BZ5pA.cpp -o /tmp/tmp2BZ5pA.o
error deleting temporary file "/tmp/tmp2BZ5pA.o": No such file or directory
ERROR: unexpected exception!
See the file 'configure.log' for details. If this doesn't help and you need
further assistance, please post on the MRtrix3 community forum
(http://community.mrtrix.org/), and make sure to include the full contents of
the 'configure.log' file.
When I compile the Eigen test code manually, it compiles/runs fine and returns “3.2.5”.
One odd thing is that viewing configure.log with less, looks like this:
CMD: g++ -c -std=c++11 -pthread -fPIC -march=native -DMRTRIX_WORD64 -^@^@^@I^@^@^@/^@^@^@u^@^@^@s^@^@^@r^@^@^@/^@^@^@i^@^@^@n^@^@^@c^@^@^@l^@^@^@u^@^@^@d^@^@^@e^@^@^@/^@^@^@e^@^@^@i^@^@^@g^@
^@^@e^@^@^@n^@^@^@3^@^@^@ /tmp/tmp2BZ5pA.cpp -o /tmp/tmp2BZ5pA.o
Are those NULL characters? They are not in any of the other compile commands.
The only modifications I made to ./configure was to remove the arguments to encode and decode. (lines 182, 192, 196, 409 and 411). The arguments caused immediate failure: “TypeError: encode() takes no keyword arguments”
Any help is appreciated.
Thanks,
Brian.