Installation Error ./configure "JSON for Modern C++" unexpected exception

I am new user and I try to install MRtrix3 on Ubuntu 18.04 LTS.
I follow this steps:

sudo apt install git g++ python python-numpy libeigen3-dev zlib1g-dev libqt4-opengl-dev libgl1-mesa-dev libfftw3-dev libtiff5-dev

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

cd mrtrix3

/mrtrix3$ ./configure 

MRtrix build type requested: release version

Detecting OS: linux
Looking for compiler [clang++]: not found
Looking for compiler [g++]: g++ (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Checking for C++11 compliance: ok
Checking shared library generation: ok
Detecting pointer size: 64 bit
Detecting byte order: little-endian
Checking for variable-length array support: ok
Checking for non-POD variable-length array support: ok
Checking for ::max_align_t: 16 bytes
Checking for std::max_align_t: 16 bytes
Checking for Eigen3 library: 3.3.4
Checking for zlib compression library: 1.2.11
Checking for "JSON for Modern C++" requirements: 
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.

The configure.log file contain this:

REPORT: Checking for zlib compression library:

COMPILE /tmp/tmp1xcRcP.cpp:
---

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

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

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

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

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


REPORT: 1.2.11

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

COMPILE /tmp/tmp6_Ee7W.cpp:
---

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

---
error deleting temporary file "/tmp/tmp6_Ee7W.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.

I install apt install nlohmann-json-dev exactly the same error

Would have you an idea for this configure error ? Thanks for your help

i try with clang 7, exactly same error,

OK, I had a look into what this could be, and I think it’ll be either a syntax error in the code itself, or more likely some issue with the text encoding used on your computer (I assume this won’t be a plain ASCII US encoding…?).

Regardless, the reason we don’t get a more informative error message is due to the way we handle runtime errors. This is actually fixed in our development branch, but this hasn’t yet been released (coming soon though… :crossed_fingers:). To at least let you investigate what the problem might be, I’ve back-ported those changes over to the master branch so you can run it and see what the actual error is. To use this, try the following (from within the MRtrix3 folder):

git fetch
git checkout configure_remove_naked_except
./configure

and hopefully that’ll give you a better idea. If you’re in any doubt, post the output of that last command, along with the contents of the configure.log file (as you did in your first post), and we’ll see if it makes any sense to us…

Here, the configure.log in the case ./configure under ~/Téléchargement/mrtrix3 folder with git checkout configure_remove_naked_except

~/Téléchargements/mrtrix3$ cat 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 9.0.0-2~ubuntu18.04.2 (tags/RELEASE_900/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
>>


REPORT: clang version 9.0.0-2~ubuntu18.04.2 (tags/RELEASE_900/final)

REPORT: Checking for C++11 compliance:

COMPILE /tmp/tmpOA19JG.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/tmpOA19JG.cpp -o /tmp/tmpOA19JG.o
EXIT: 0
>>

EXEC <<
CMD: clang++ /tmp/tmpOA19JG.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 <<
..........................................................
...............................;
.........................
REPORT: 1.2.11

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

COMPILE /tmp/tmpuK4s7y.cpp:
---

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

---
error deleting temporary file "/tmp/tmpuK4s7y.o": No such file or directory
ERROR: unexpected exception of type UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 117: ordinal not in range(128)

  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.

Hello, it’s solved.
Yes i am not in plain us ASCII encoding and the git clone is under Téléchargement folder wich maybe cause error. I try on virtual machine under Ubuntu 19.10 ans it’s works. Then i try on other system with ubuntu 18.04 and it works. Then motivate, i decided to try on the system which have the error. I do the clone in a folder with no accent and … it work’s.
I have the message Failed to load module "canberra-gtk-module" when i start mrview.
Solved by sudo apt install libcanberra-gtk-module.
Thanks a lot for your fast reply.

I try to reproduce the error and it seems well that it’s encoding error.

git clone https://github.com/MRtrix3/mrtrix3.git
git fetch
git checkout configure_remove_naked_except
./configure
MRtrix build type requested: release version

Detecting OS: linux
Looking for compiler [clang++]: clang version 9.0.0-2~ubuntu18.04.2 (tags/RELEASE_900/final)
Checking for C++11 compliance: ok
Checking shared library generation: ok
Detecting pointer size: 64 bit
Detecting byte order: little-endian
Checking for variable-length array support: ok
Checking for non-POD variable-length array support: ok
Checking for ::max_align_t: 16 bytes
Checking for std::max_align_t: 16 bytes
Checking for Eigen3 library: 3.3.4
Checking for zlib compression library: 1.2.11
Checking for "JSON for Modern C++" requirements: 
ERROR: unexpected exception of type UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 117: ordinal not in range(128)

  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 do your normal installation method under linux in a folder with no accent (é,à ê …) it works. I also test move Téléchargement folder to Telechargement it works.

is it usefull to do an issue on git for that ?

Great, thanks for reporting back, it’s good to have these issues confirmed. No need for an issue on GitHub: it’s already fixed on the development branch, and hopefully that’ll be released very shortly.