Hey there,
@Lucius and I are currently developing a module for mrtrix which uses an external library to work properly (in this case OpenIGTLink). Because I’m relatively new to C++ development I had a lot of trouble with understanding the build process and adapting it to my needs.
At the moment I think that the compilation of my module works and that clang finds the correct header files for the module.
But unfortunately I can’t figure out where the problem with the linking step is. I get the following error message:
After invoking the configure script from the mrtrix root directory like this:
CFLAGS=-I/usr/local/include/igtl LDFLAGS=-L/usr/local/libs/igtl ./configure
and calling the ./build script from the module’s subfolder without any arguments (which I set up using a symbolic link to mrtrix/build like it was described in the tutorial) I get the following error message just after the compilation part of the build process finishes:
ERROR: (214/214) [LB] bin/mrview-igtlink
{long clang command}
failed with output
Undefined symbols for architecture x86_64:
"igtl::MessageBase::GetPackSize()", referenced from:
TrackingDataClient::connectBrainlab() in mrview-igtlink.o
The lib folder (/usr/local/lib/igtl) includes the following files:
OpenIGTLinkBuildSettings.cmake
OpenIGTLinkTargets.cmake
libOpenIGTLink.2.0.0.dylib
libOpenIGTLink.a
OpenIGTLinkConfig.cmake
UseOpenIGTLink.cmake
libOpenIGTLink.2.dylib
libOpenIGTLink.dylib
Does someone have any advice?
Best regards,
Darius