<div dir="ltr">Hey Jon,<div><br></div><div>Seems odd, but my best guess would be that these functions might have changed from being actual functions calls to now being header-only inline functions, which would therefore not be present in the library. If that&#39;s the case, it would only be a problem if you&#39;re trying to link already compiled code, which would happen if you&#39;re trying to build from your previous installation without issuing a &#39;./build clean&#39; first to remove all already compiled object files.</div>
<div><br></div><div>So in brief, try &#39;./build clean&#39;, then &#39;./build&#39;...</div><div><br></div><div>Cheers,</div><div>Donald.</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On 28 October 2013 15:11, Jon Clayden <span dir="ltr">&lt;<a href="mailto:jon.clayden@gmail.com" target="_blank">jon.clayden@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dear all,<br>
<br>
I know this is tedious--sorry--but I&#39;ve been struggling to get MRtrix installed on a new computer (Mac OS X Mavericks + Homebrew) and can&#39;t find my way past this problem.<br>
<br>
The MRtrix build script fails at link time (see output below). But the library paths look fine, the appropriate libraries are listed in the link command generated by the script, and I see no evidence that the functions in question have moved or been removed in recent versions of glibmm (I&#39;m using 2.38.0).<br>

<br>
Am I missing something obvious here?<br>
<br>
Thanks in advance,<br>
Jon<br>
<br>
--<br>
[LD] lib/libmrtrix-0_2_11.dylib<br>
<br>
ERROR: [LD] lib/libmrtrix-0_2_11.dylib<br>
<br>
g++-4.8 -shared lib/math/vector.o lib/math/matrix.o lib/image/format/analyse.o lib/file/dicom/quick_scan.o lib/image/format/list.o lib/file/dicom/image.o lib/file/config.o lib/point.o lib/image/name_parser.o lib/image/format/xds.o lib/data_type.o lib/args.o lib/file/dicom/patient.o lib/file/dicom/tree.o lib/image/fft.o lib/image/header.o lib/file/dicom/mapper.o lib/file/dicom/select_cmdline.o lib/math/linalg.o lib/file/dicom/study.o lib/file/dicom/element.o lib/file/mmap.o lib/image/format/nifti1.o lib/file/dicom/dict.o lib/image/format/mrtrix.o lib/image/format/base.o lib/image/axis.o lib/image/interp.o lib/image/mapper.o lib/file/dicom/series.o lib/mrtrix.o lib/image/format/mri.o lib/image/object.o lib/image/format/dicom.o lib/app.o lib/file/key_value.o -L/usr/local/Cellar/glibmm/2.38.0/lib -L/usr/local/Cellar/glib/2.38.1/lib -L/usr/local/Cellar/libsigc++/2.3.1/lib -L/usr/local/Cellar/glib/2.38.1/lib -L/usr/local/opt/gettext/lib -lglibmm-2.4 -lgobject-2.0 -lsigc-2.0 -lgthre<br>

 ad-2.0 -lglib-2.0 -lintl -lgsl -lgslcblas -lz -o lib/libmrtrix-0_2_11.dylib<br>
<br>
failed with output:<br>
<br>
Undefined symbols for architecture x86_64:<br>
 &quot;Glib::build_filename(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;)&quot;, referenced from:<br>

     MR::File::Config::init()   in config.o<br>
     MR::Image::NameParser::name(std::vector&lt;int, std::allocator&lt;int&gt; &gt; const&amp;) in name_parser.o<br>
     MR::Image::NameParser::get_next_match(std::vector&lt;int, std::allocator&lt;int&gt; &gt;&amp;, bool) in name_parser.o<br>
     MR::File::Dicom::Tree::read_dir(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) in tree.o<br>
     MR::Image::Format::MRtrix::read(MR::Image::Mapper&amp;, MR::Image::Header&amp;) const in mrtrix.o<br>
 &quot;Glib::str_has_suffix(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;)&quot;, referenced from:<br>

     MR::Image::Format::Analyse::check(MR::Image::Header&amp;, int) const in analyse.o<br>
     MR::Image::Format::Analyse::read(MR::Image::Mapper&amp;, MR::Image::Header&amp;) const in analyse.o<br>
     MR::Image::Format::XDS::check(MR::Image::Header&amp;, int) const in xds.o<br>
     MR::Image::Format::XDS::read(MR::Image::Mapper&amp;, MR::Image::Header&amp;) const in xds.o<br>
     MR::File::Dicom::Element::set(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) in element.o<br>
     MR::Image::Format::NIfTI::check(MR::Image::Header&amp;, int) const in nifti1.o<br>
     MR::Image::Format::NIfTI::create(MR::Image::Mapper&amp;, MR::Image::Header const&amp;) const in nifti1.o<br>
     ...<br>
 &quot;Glib::path_get_dirname(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;)&quot;, referenced from:<br>
     MR::Image::NameParser::parse(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, unsigned int) in name_parser.o<br>
     MR::Image::Format::MRtrix::read(MR::Image::Mapper&amp;, MR::Image::Header&amp;) const in mrtrix.o<br>
 &quot;Glib::path_get_basename(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;)&quot;, referenced from:<br>
     MR::Image::NameParser::parse(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, unsigned int) in name_parser.o<br>
     MR::Image::Format::MRtrix::create(MR::Image::Mapper&amp;, MR::Image::Header const&amp;) const in mrtrix.o<br>
     MR::Image::Object::open(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, bool) in object.o<br>
     MR::Image::Object::create(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, MR::Image::Header&amp;) in object.o<br>
     MR::App::App(int, char**, char const**, MR::Argument const*, MR::Option const*, unsigned int const*, char const*, char const*) in app.o<br>
     MR::App::App(int, char**, char const**, MR::Argument const*, MR::Option const*, unsigned int const*, char const*, char const*) in app.o<br>
 &quot;Glib::Dir::Dir(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;)&quot;, referenced from:<br>
     MR::Image::NameParser::get_next_match(std::vector&lt;int, std::allocator&lt;int&gt; &gt;&amp;, bool) in name_parser.o<br>
     MR::File::Dicom::Tree::read_dir(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) in tree.o<br>
 &quot;Glib::ustring::ustring(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;)&quot;, referenced from:<br>
     MR::Math::Vector::save(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) const in vector.o<br>
     MR::Math::Vector::load(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) in vector.o<br>
     MR::Math::Matrix::save(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) const in matrix.o<br>
     MR::Math::Matrix::load(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) in matrix.o<br>
     MR::Image::NameParser::get_next_match(std::vector&lt;int, std::allocator&lt;int&gt; &gt;&amp;, bool) in name_parser.o<br>
     MR::Image::Format::XDS::read(MR::Image::Mapper&amp;, MR::Image::Header&amp;) const in xds.o<br>
     MR::Image::Format::XDS::create(MR::Image::Mapper&amp;, MR::Image::Header const&amp;) const in xds.o<br>
     ...<br>
 &quot;Glib::file_test(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, Glib::FileTest)&quot;, referenced from:<br>
     MR::File::Config::init()   in config.o<br>
     MR::Image::NameParser::parse(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, unsigned int) in name_parser.o<br>
     MR::File::Dicom::Tree::read_dir(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) in tree.o<br>
     MR::File::Dicom::Tree::read(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) in tree.o<br>
     MR::Image::Format::MRtrix::create(MR::Image::Mapper&amp;, MR::Image::Header const&amp;) const in mrtrix.o<br>
 &quot;Glib::operator&lt;&lt;(std::basic_ostream&lt;char, std::char_traits&lt;char&gt; &gt;&amp;, Glib::ustring const&amp;)&quot;, referenced from:<br>
     MR::cmdline_info(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) in app.o<br>
     MR::cmdline_error(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) in app.o<br>
     MR::cmdline_debug(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) in app.o<br>
     MR::operator&lt;&lt;(std::basic_ostream&lt;char, std::char_traits&lt;char&gt; &gt;&amp;, MR::App const&amp;) in app.o<br>
ld: symbol(s) not found for architecture x86_64<br>
collect2: error: ld returned 1 exit status<br>
<br>
STOP<br>
_______________________________________________<br>
Mrtrix-discussion mailing list<br>
<a href="mailto:Mrtrix-discussion@www.nitrc.org">Mrtrix-discussion@www.nitrc.org</a><br>
<a href="http://www.nitrc.org/mailman/listinfo/mrtrix-discussion" target="_blank">http://www.nitrc.org/mailman/listinfo/mrtrix-discussion</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><b><font color="#990000">Dr J-Donald Tournier (PhD)</font></b><br><div><font color="#990000"><br></font></div><i><font color="#990000">Senior Lecturer, </font></i><i><font color="#990000">Biomedical Engineering</font></i><div>
<i><font color="#990000">Division of Imaging Sciences &amp; Biomedical Engineering<br>King&#39;s College London</font></i><div><i><font color="#990000"><br></font></i></div><div><i><font color="#990000"><b style="font-family:Calibri,sans-serif;font-size:15px"><span style="font-size:10pt">A:</span></b><span style="font-family:Calibri,sans-serif;font-size:10pt"> Department of Perinatal Imaging &amp; Health, 1<sup>st</sup> Floor South Wing, St Thomas&#39; Hospital, London. SE1 7EH</span><br>
</font></i></div><div><i><font color="#990000"><b>T:</b> +44 (0)20 7188 7118 ext 53613</font></i></div></div><div><i><font color="#990000"><b>W:</b> <a href="http://www.kcl.ac.uk/medicine/research/divisions/imaging/departments/biomedengineering" target="_blank">http://www.kcl.ac.uk/medicine/research/divisions/imaging/departments/biomedengineering</a></font></i><br>
</div></div>
</div>