Fun, as summarized in Dwarf Fortress.
So. Been compiling DrawEM module of MIRTK on both CentOS and Ubuntu18. Fun indeed. I will write about compilation fun in general another day as its a source of much fun elsewhere too.
So, if you ever see build errors like:
[ 75%] Building CXX object Packages/DrawEM/src/CMakeFiles/LibDrawEM.dir/BiasCorrection.cc.o In file included from /home/dyt811/MIRTK/Packages/DrawEM/src/BiasCorrection.cc:21:0: /home/WindStalker/MIRTK/Packages/DrawEM/include/mirtk/BiasCorrection.h:29:34: fatal error: mirtk/Transformation.h: No such file or directory #include "mirtk/Transformation.h" ^ compilation terminated. Linking CXX executable ../../../lib/tools/calculate-gradients Linking CXX executable ../../../lib/tools/measure-volume Linking CXX executable ../../../lib/tools/change-label make: *** [Packages/DrawEM/src/CMakeFiles/LibDrawEM.dir/BiasCorrection.cc.o] Error 1 make: *** [Packages/DrawEM/src/CMakeFiles/LibDrawEM.dir/all] Error 2 make: *** Waiting for unfinished jobs.... [ 75%] Built target change-label [ 75%] Built target calculate-gradients [ 75%] Built target measure-volume Linking CXX executable ../../../lib/tools/padding Linking CXX executable ../../../lib/tools/calculate-filtering [ 75%] Built target padding [ 75%] Built target calculate-filtering Linking CXX executable ../../lib/tools/aggregate-images [ 75%] Built target aggregate-images /home/WindStalker/MIRTK/Applications/src/average-images.cc: In function ‘int main(int, char**)’: /home/WindStalker/MIRTK/Applications/src/average-images.cc:876:5: error: ‘imdof_name’ was not declared in this scope imdof_name .insert(imdof_name.end(), imdofs .begin(), imdofs .end()); ^ /home/WindStalker/MIRTK/Applications/src/average-images.cc:877:5: error: ‘imdof_invert’ was not declared in this scope imdof_invert.insert(imdof_invert.end(), invdofs.begin(), invdofs.end()); ^ make: *** [Applications/src/CMakeFiles/average-images.dir/average-images.cc.o] Error 1 make: *** [Applications/src/CMakeFiles/average-images.dir/all] Error 2 make: *** [all] Error 2
This is because DrawEM during compilation expect home directory to be named “mirtk” instead of “MIRTK” which is what git clone generated from main GitHub repo… so rename to “mirtk” and regenerate CMAKE cache will fix it… Yup. it is a lot less scarier than it looked….
How I found out? While compiling on both CentOS and Ubuntu ran into this same issue…