Hello
Dear Developers and Users
I want to build Slicer on Ubuntu 20.04 as mentioned in “GNU/Linux systems — 3D Slicer documentation”.
My system
sn@sn:~$ uname --all
Linux sn 5.13.0-28-generic #31~20.04.1-Ubuntu SMP Wed Jan 19 14:08:10 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
sn@sn:~$
Firstly I installed Ubuntu 20.04 and then other packages as mentioned below:
sn@sn:~$ sudo apt update
...
sn@sn:~$ sudo apt install git
…
sn@sn:~$ sudo apt install subversion
…
sn@sn:~$ sudo apt install build-essential
…
sn@sn:~$ sudo apt install cmake
…
I installed Qt as mentioned in “Download Qt: Get Qt Online Installer”, I execute the following commands:
sn@sn:~$ mkdir QtInstaller
sn@sn:~$ cp ~/Downloads/qt-unified-linux-x64-4.2.0-online.run ./QtInstaller/
sn@sn:~/QtInstaller$ chmod a+x qt-unified-linux-x64-4.2.0-online.run
sn@sn:~/QtInstaller$ ./qt-unified-linux-x64-4.2.0-online.run
…
I click next and select default options.
sn@sn:~/QtInstaller$ ll -h /home/sn/Qt
total 30M
drwxr-xr-x 6 sn sn 4.0K Feb 9 17:22 ./
drwxr-xr-x 21 sn sn 4.0K Feb 9 16:46 ../
-rw-r--r-- 1 sn sn 4.7K Feb 9 17:22 components.xml
drwxrwxr-x 2 sn sn 4.0K Feb 9 17:21 dist/
-rw-r--r-- 1 sn sn 46K Feb 9 17:22 InstallationLog.txt
-rw-r--r-- 1 sn sn 48 Feb 9 17:22 installer.dat
drwxr-xr-x 8 sn sn 4.0K Feb 9 17:22 installerResources/
drwxr-xr-x 2 sn sn 4.0K Feb 9 17:22 Licenses/
-rwxr-xr-x 1 sn sn 30M Feb 9 17:22 MaintenanceTool*
-rw-r--r-- 1 sn sn 510K Feb 9 17:22 MaintenanceTool.dat
-rw-r--r-- 1 sn sn 7.0K Feb 9 17:22 MaintenanceTool.ini
-rw-r--r-- 1 sn sn 362 Feb 9 17:22 network.xml
drwxrwxr-x 6 sn sn 4.0K Feb 9 17:22 Tools/
sn@sn:~/QtInstaller$
I found an easier way. I found instructions on installing libraries on the building Slicer:
sn@sn:~$ sudo apt update && sudo apt install git subversion build-essential cmake cmake-curses-gui cmake-qt-gui \ qt5-default qtmultimedia5-dev qttools5-dev libqt5xmlpatterns5-dev libqt5svg5-dev qtwebengine5-dev qtscript5-dev \ qtbase5-private-dev libqt5x11extras5-dev libxt-dev
After doing it (the installation of the development tools and the support libraries), I enter the following commands:
sn@sn:~$ git clone https://github.com/Slicer/Slicer.git
...
sn@sn:~$ cd Slicer
sn@sn:~/Slicer$ ./Utilities/SetupForDevelopment.sh
Checking basic user information...
Please enter your full name, such as 'John Doe': Shahrokh Nasseri
Setting name to 'Shahrokh Nasseri'
Please enter your email address, such as 'john@email.com': naserish@mums.ac.ir
Setting email address to 'naserish@mums.ac.ir'
Your commits will have the following author:
Shahrokh Nasseri <naserish@mums.ac.ir>
Is the author name and email address above correct? [Y/n] Y
Setting up git hooks...
Initialized empty Git repository in /home/sn/Slicer/.git/hooks/.git/
Pulling the hooks...
Done.
Suggesting git tips...
You may want to enable color output from Git commands with
git config --global color.ui auto
A dynamic, informative Git shell prompt can be obtained by sourcing the git
bash-completion script in your ~/.bashrc. Set the PS1 environmental variable as
suggested in the comments at the top of the bash-completion script. You may
need to install the bash-completion package from your distribution to obtain the
script.
A merge tool can be configured with
git config merge.tool <toolname>
For more information, see
git help mergetool
Done.
sn@sn:~/Slicer$ git config --global color.ui auto
sn@sn:~/Slicer$ cd ..
sn@sn:~$ mkdir Slicer-SuperBuild-Debug
sn@sn:~$ cd Slicer-SuperBuild-Debug
sn@sn:~/Slicer-SuperBuild-Debug$ cmake ../Slicer
...
-- SuperBuild - Slicer[OK]
-- Configuring done
-- Generating done
-- Build files have been written to: /home/sn/Slicer-SuperBuild-Debug
sn@sn:~/Slicer-SuperBuild-Debug$ cmake -DCMAKE_BUILD_TYPE:STRING=Release ../Slicer
...
-- SuperBuild - python-extension-manager-ssl-requirements[OK]
-- SuperBuild - JsonCpp[OK]
-- SuperBuild - Slicer[OK]
-- Configuring done
-- Generating done
-- Build files have been written to: /home/sn/Slicer-SuperBuild-Debug
sn@sn:~/Slicer-SuperBuild-Debug$ make -j2
...
[ 99%] Linking CXX shared library ../../../../lib/libITKReview-5.2.so
[ 99%] Built target ITKReview
[ 99%] Built target ITKReview-all
[ 99%] Built target ITKSuperPixel-all
[100%] Linking CXX shared library ../../../../lib/libITKTestKernel-5.2.so
[100%] Built target ITKTestKernel
[100%] Linking CXX executable ../../../../bin/itkTestDriver
/usr/bin/ld: ../../../../lib/libITKTestKernel-5.2.so.1: undefined reference to `itk::FreeSurferBinaryMeshIOFactory::FreeSurferBinaryMeshIOFactory()'
/usr/bin/ld: ../../../../lib/libITKTestKernel-5.2.so.1: undefined reference to `itk::FreeSurferAsciiMeshIOFactory::FreeSurferAsciiMeshIOFactory()'
/usr/bin/ld: ../../../../lib/libITKTestKernel-5.2.so.1: undefined reference to `itk::BYUMeshIOFactory::BYUMeshIOFactory()'
collect2: error: ld returned 1 exit status
make[5]: *** [Modules/Core/TestKernel/src/CMakeFiles/itkTestDriver.dir/build.make:115: bin/itkTestDriver] Error 1
make[4]: *** [CMakeFiles/Makefile2:14326: Modules/Core/TestKernel/src/CMakeFiles/itkTestDriver.dir/all] Error 2
make[3]: *** [Makefile:152: all] Error 2
make[2]: *** [CMakeFiles/ITK.dir/build.make:116: ITK-prefix/src/ITK-stamp/ITK-build] Error 2
make[1]: *** [CMakeFiles/Makefile2:1404: CMakeFiles/ITK.dir/all] Error 2
make: *** [Makefile:95: all] Error 2
sn@sn:~/Slicer-SuperBuild-Debug$
As seen above, I get error during Built target ITKTestKernel.
Please guide me to solve it.
Best regards.
Shahrokh