[Insight-users] MacOSX build with testing

Hans Johnson hans-johnson at uiowa.edu
Fri Feb 25 13:47:36 EST 2005


All,

I just wanted to follow up on this MacOSX building issue.

The USE_EXPLICIT_INSTATION flag does not work with MacOSX, even though it
was designed for the gcc compiler.

Building static libraries work.

Building shared libraries does not seem to work.  I get an error when
building vxl:

Building shared library
/Users/hjmjohnson/src/gec/freeware/MacOSX/DEBUG/Insight-build/bin/libitkvnl_
algo.dylib...
ld: Undefined symbols:
std::basic_ostream<char, std::char_traits<char> >& operator<<
<double>(std::basic_ostream<char, std::char_traits<char> >&,
vnl_matrix<double> const&)
std::basic_ostream<char, std::char_traits<char> >& operator<<
<double>(std::basic_ostream<char, std::char_traits<char> >&,
vnl_vector<double> const&)
std::basic_ostream<char, std::char_traits<char> >& operator<<
<float>(std::basic_ostream<char, std::char_traits<char> >&,
vnl_matrix<float> const&)
std::basic_ostream<char, std::char_traits<char> >& operator<<
<float>(std::basic_ostream<char, std::char_traits<char> >&,
vnl_vector<float> const&)
std::basic_ostream<char, std::char_traits<char> >& operator<<
<std::complex<double> >(std::basic_ostream<char, std::char_traits<char> >&,
vnl_matrix<std::complex<double> > const&)
std::basic_ostream<char, std::char_traits<char> >& operator<<
<std::complex<double> >(std::basic_ostream<char, std::char_traits<char> >&,
vnl_vector<std::complex<double> > const&)
std::basic_ostream<char, std::char_traits<char> >& operator<<
<std::complex<float> >(std::basic_ostream<char, std::char_traits<char> >&,
vnl_matrix<std::complex<float> > const&)
std::basic_ostream<char, std::char_traits<char> >& operator<<
<std::complex<float> >(std::basic_ostream<char, std::char_traits<char> >&,
vnl_vector<std::complex<float> > const&)
/usr/bin/libtool: internal link edit command failed
make[11]: *** 
[/Users/hjmjohnson/src/gec/freeware/MacOSX/DEBUG/Insight-build/bin/libitkvnl
_algo.dylib] Error 1


I can't figure out why this is occuring....Oh well, looks like it will be
static libraries for now.

Hans



On 2/22/05 5:29 PM, "Hans Johnson" <hans-johnson at uiowa.edu> wrote:

> Zach,
> 
> Thanks for the quick response.  I forgot that I had the explicit instantiation
> turned on (for gcc based compilers).  I'll try to turn that off and report my
> findings.  In addition, I am building static libraries,  if the Explicit
> instantiation does not do the trick, I'll try dynamic libraries, and report
> those results also.
> 
> Thanks,
> Hans
> 
> 
> 
> On 2/22/05 4:36 PM, "Zachary Pincus" <zpincus at stanford.edu> wrote:
> 
>> How was the build configured with cmake? (Shared libs? Not shared libs?
>> Any SWIG wrapping?)
>> 
>> I rarely have problems building a fresh checkout of ITK on OS X (with
>> or without testing) with the shared libraries flag turned on, and none
>> of the other optional flags. It's been a while since I didn't try with
>> shared libs, actually -- it should work either way.
>> 
>>  From the error messages, it looks like you turned on the
>> USE_EXPLICIT_INSTANTIATION flag -- someone who is more knowledgeable
>> about the status of that can correct me, but from what I understand,
>> the explicit instantiation stuff is still a bit experimental. What's
>> happening is that the linker is finding multiple definitions of the
>> same class: both in the explicit instantiation library and in the
>> compiled object file.
>> 
>> So what I would try is to turn off the explicit instantiations (if you
>> didn't turn it on, perhaps ITK now comes with that flag already on??)
>> by toggling the cmake advanced options and turning that flag off. Then
>> try building again. (You might need to manually remove libITKCommon.a
>> to force that file to be re-linked without the
>> itkExplicitInstantiations.o object file.)
>> 
>> Zach Pincus
>> 
>> Department of Biochemistry and Program in Biomedical Informatics
>> Stanford University School of Medicine
>> 
>> 
>> On Feb 22, 2005, at 1:30 PM, Hans Johnson wrote:
>> 
>>> Hello All,
>>> 
>>> I am new to building on the Mac OSX, and can not figure out how to
>>> solve the
>>> linking errors.  This is a new mac G4 powerbook running OSX 10.3.8.  I
>>> can
>>> build with testing off just fine, but with Testing turned on, the build
>>> fails with lots of messages like the following:
>>> 
>>> echo "Building executable
>>> /Users/hjmjohnson/src/brains2/MacOSX/DEBUG/iplFreeware/unpackdir/
>>> Insight/bin
>>> /itkNumericsTests..."
>>> c++       -g -fstrict-aliasing -UNDEBUG  -Wall -Wcast-qual
>>> -Wstrict-prototypes -multiply_defined suppress  -ftemplate-depth-50
>>> -no-cpp-precomp -Wno-long-double -fPIC  itkNumericsTests.o
>>> itkNumericsPrintTest.o itkAmoebaOptimizerTest.o
>>> itkConjugateGradientOptimizerTest.o itkCompositeValleyFunctionTest.o
>>> itkCumulativeGaussianOptimizerTest.o itkGradientDescentOptimizerTest.o
>>> itkLevenbergMarquardtOptimizerTest.o itkLBFGSBOptimizerTest.o
>>> itkLBFGSOptimizerTest.o itkMultivariateLegendrePolynomialTest.o
>>> itkNumericsTest.o itkOptimizersHierarchyTest.o itkPowellOptimizerTest.o
>>> itkRegularStepGradientDescentOptimizerTest.o
>>> itkSymmetricEigenSystemTest.o
>>> itkVersorTransformOptimizerTest.o
>>> itkVersorRigid3DTransformOptimizerTest.o
>>> -o
>>> /Users/hjmjohnson/src/brains2/MacOSX/DEBUG/iplFreeware/unpackdir/
>>> Insight/bin
>>> /itkNumericsTests  -L.
>>> -L/Users/hjmjohnson/src/brains2/MacOSX/DEBUG/iplFreeware/unpackdir/
>>> Insight/b
>>> in -lITKCommon -lITKNumerics -lITKIO -lITKCommon -litkvnl_inst
>>> -litkvnl_algo
>>> -litkvnl -litkvcl -litknetlib -lm -litksys -lpthread -lITKNrrdIO
>>> -litkpng
>>> -litktiff -lm -litkgdcm -litkjpeg8 -litkjpeg12 -litkjpeg16 -lITKMetaIO
>>> -litkzlib -lITKDICOMParser -lITKEXPAT
>>> 
>>> 
>>> 
>>> Building executable
>>> /Users/hjmjohnson/src/brains2/MacOSX/DEBUG/iplFreeware/unpackdir/
>>> Insight/bin
>>> /itkNumericsTests...
>>> ld: multiple definitions of symbol
>>> _ZNK3itk18ImageToImageFilterINS_5ImageIaLj2EEENS1_IfLj2EEEE14GetNameOfC
>>> lassE
>>> v.eh
>>> itkNumericsTests.o definition of absolute
>>> _ZNK3itk18ImageToImageFilterINS_5ImageIaLj2EEENS1_IfLj2EEEE14GetNameOfC
>>> lassE
>>> v.eh (value 0x0)
>>> /Users/hjmjohnson/src/brains2/MacOSX/DEBUG/iplFreeware/unpackdir/
>>> Insight/bin
>>> /libITKCommon.a(itkExplicitInstantiations.o) definition of absolute
>>> _ZNK3itk18ImageToImageFilterINS_5ImageIaLj2EEENS1_IfLj2EEEE14GetNameOfC
>>> lassE
>>> v.eh (value 0x0)
>>> ld: multiple definitions of symbol
>>> _ZNK3itk18ImageToImageFilterINS_5ImageIaLj2EEES2_E14GetNameOfClassEv.eh
>>> itkNumericsTests.o definition of absolute
>>> _ZNK3itk18ImageToImageFilterINS_5ImageIaLj2EEES2_E14GetNameOfClassEv.eh
>>> (value 0x0)
>>> /Users/hjmjohnson/src/brains2/MacOSX/DEBUG/iplFreeware/unpackdir/
>>> Insight/bin
>>> /libITKCommon.a(itkExplicitInstantiations.o) definition of absolute
>>> _ZNK3itk18ImageToImageFilterINS_5ImageIaLj2EEES2_E14GetNameOfClassEv.eh
>>> (value 0x0)
>>> 
>>> Could someone please let me know were I am going wrong?
>>> 
>>> Thanks,
>>> Hans J. Johnson
>>> 
>>> 
>>> _______________________________________________
>>> Insight-users mailing list
>>> Insight-users at itk.org
>>> http://www.itk.org/mailman/listinfo/insight-users
>>> 
>> 




More information about the Insight-users mailing list