Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SIRF build fails - unable to disable synergistic code #801

Open
mastergari opened this issue Jan 23, 2023 · 1 comment
Open

SIRF build fails - unable to disable synergistic code #801

mastergari opened this issue Jan 23, 2023 · 1 comment

Comments

@mastergari
Copy link

According to @KrisThielemans, setting DISABLE_Synergistic:BOOL=ON in <PATH TO>/builds/SIRF/build/CMakeCache.txt shouldn’t compile syn_utilities.cpp. However, calling make from SIRF/build/ returns:

/home/matthew/Programs/sirf/build/sources/SIRF/src/common/syn_utilities.cpp:32:10: fatal error: sirf/Gadgetron/gadgetron_data_containers.h: No such file or directory 
#include "sirf/Gadgetron/gadgetron_data_containers.h"

If I set DISABLE_Synergistic:BOOL=OFF, then make returns the same error as above. Also note that cmake returns:

-- One or more of the following components are missing: Registration, ISMRMRD and STIR (with ITK). Synergistic code will not be built.
-- Either Registration or ISMRMRD or STIR (with ITK) have not been built.

At first, it appears that I have successfully built Registration (NIFTYREG), ISMRMRD, and STIR (with ITK), and all packages show as Up-to-date when calling make install from <PATH TO>/builds/<PACKAGE>/build. However, when I try to enable the synergistic code, cmake returns -- ISMRMRD missing, and all of the ismrmrd programs in the INSTALL/bin directory return error while loading shared libraries: libismrmrd.so.1.7: cannot open shared object file: No such file or directory. I noticed that calling make install from ISMRMRD/build/ sets all runtime paths to "". I don't need ISMRMRD, but I cannot figure out how to properly build it in my attempt to bypass the synergistic code issue.

Any help is appreciated!

@mastergari
Copy link
Author

I think part of my issue was that I had set DISABLE_GIT_CHECKOUT_Gadgetron:BOOL=OFF in build/CMakeCache.txt and DISABLE_Gadgetron:BOOL=ON in build/builds/SIRF/build/CMakeCache.txt. I was able to build SIRF to some extent after changing some of my cmake settings.

First, my ISMRMRD build failed with error message:

/usr/bin/ld: /home/matthew/Programs/sirf/build/INSTALL/lib/libhdf5.a(H5HFsection.c.o): relocation R_X86_64_PC32 against symbol 'H5E_HEAP_g' can not be used when making a shared object; recompile with -fPIC

so I recompiled HDF5 after adding -fPIC to CMAKE_C_FLAGS and CMAKE_CXX_FLAGS in builds/HDF5/build/CMakeCache.txt.

Next, the configure step for SIRF failed with error message (this appears to be a separate issue):

CMake Error at /home/matthew/Programs/sirf/build/INSTALL/share/cmake/hdf5/hdf5-config-version.cmake:18 (IF):
  if given arguments:
    "0" "EQUAL"
  Unknown arguments specified

so I commented out the IF ENDIF statements on line 18 in hdf5-config-version.cmake since there are missing arguments and a comment stating "not using this yet". Calling make or make SIRF from the build folder overwrites the cmake file, so I continued to the build/builds/SIRF/build folder.

While trying to build SIRF only, I received the error message:

/home/matthew/Programs/sirf/build/sources/SIRF/src/Registration/cReg/NiftiImageData3DDisplacement.cpp:33:10: fatal error: vtkSmartPointer.h: No such file or directory
 #include "vtkSmartPointer.h"

so I set DISABLE_VTK:BOOL=ON. Beyond this, I used to see the syn_utilities.cpp error mentioned in the first comment. However, adding -fPIC and DISABLE_Gadtron:BOOL=ON to their respective CMakeCache.txt files allowed me to complete the build, and all SIRF tests passed after installing the python dependencies in build/sources/SIRF/requirements.txt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant