[ITK-users] Linker problems since Ubuntu 16.04 upgrade

Dženan Zukić dzenanz at gmail.com
Thu Sep 8 10:09:33 EDT 2016


Something similar happened to me when I switched from 14.04 to 16.04. You
need to compile both ITK and the program which links against it using the
same compiler i.e. you need to recompile ITK (do a clean build).

Regards,
Dženan

On Wed, Sep 7, 2016 at 12:13 PM, Lowekamp, Bradley (NIH/NLM/LHC) [C] <
blowekamp at mail.nih.gov> wrote:

> Hello,
>
> You are using the installed Ubuntu version?
>
> Because I see “cxx11” in the string symbol below, I think there may be a
> miss match between the C++ versions used to compile ITK and what you use
> here in this example.
>
> I would try to determine which compiler and flags your ubuntu version of
> ITK was compiled with and try to use the same.
>
> Alternatively, you could just compile ITK from source.
>
> HTH,
> Brad
>
>
>
>
> > On Sep 7, 2016, at 12:00 PM, soolijoo <mattghall at gmail.com> wrote:
> >
> > Hi,
> >
> > I've just upgraded to Ubuntu 16.04 from 14.04 and am having some strange
> > linker problems with my code.
> >
> > Using the same CMakeLists.txt as previously the compiler is finding the
> ITK
> > headers but the build fails during the linking phase. This is happening
> even
> > for extremely simple, hello world type examples. For example the
> following
> > code:
> >
> > #include "itkImage.h"
> > #include <iostream>
> >
> > int main(int argc, char** argv){
> >
> >    typedef itk::Image<unsigned short, 3> ImageType;
> >
> >    ImageType::Pointer image = ImageType::New();
> >
> >    std::cout << "Hey there, ITK!" << std::endl;
> >
> >    return 0;
> >
> > }
> >
> >
> > with this CMakeLists.txt file:
> >
> > cmake_minimum_required(VERSION 2.8)
> >
> > project(SimpleMutInfo)
> >
> > find_package(ITK REQUIRED)
> > include(${ITK_USE_FILE})
> > if(ITKVtGlue_LOADED)
> >    find_package(VTK REQUIRED)
> >    include(${VTK_USE_FILE})
> > endif()
> >
> > add_executable(SimpleMutInfo simpleMutInfo.cpp)
> >
> > MESSAGE(${ITK_LIBRARIES})
> >
> > MESSAGE(${CMAKE_INSTALL_PREFIX})
> > MESSAGE(${ITK_DIR})
> >
> > if( "${ITK_VERSION_MAJOR}" LESS 4 )
> >    target_link_libraries(SimpleMutInfo ITKReview ${ITK_LIBRARIES})
> > else( "${ITK_VERSION_MAJOR}" LESS 4 )
> >    target_link_libraries(SimpleMutInfo ${ITK_LIBRARIES})
> > endif( "${ITK_VERSION_MAJOR}" LESS 4 )
> >
> >
> > completes the cmake apparently correctly:
> > -- The C compiler identification is GNU 5.4.0
> > -- The CXX compiler identification is GNU 5.4.0
> > -- Check for working C compiler: /usr/bin/cc
> > -- Check for working C compiler: /usr/bin/cc -- works
> > -- Detecting C compiler ABI info
> > -- Detecting C compiler ABI info - done
> > -- Detecting C compile features
> > -- Detecting C compile features - done
> > -- Check for working CXX compiler: /usr/bin/c++
> > -- Check for working CXX compiler: /usr/bin/c++ -- works
> > -- Detecting CXX compiler ABI info
> > -- Detecting CXX compiler ABI info - done
> > -- Detecting CXX compile features
> > -- Detecting CXX compile features - done
> > -- Configuring done
> > -- Generating done
> > -- Build files have been written to:
> > /home/matt/CodingProjects/sandbox/mutInfo/itk/helloItk
> >
> >
> > but gives the following compiler error:
> > Scanning dependencies of target HelloItk
> > [ 50%] Building CXX object CMakeFiles/HelloItk.dir/helloItk.cpp.o
> > [100%] Linking CXX executable HelloItk
> > CMakeFiles/HelloItk.dir/helloItk.cpp.o: In function
> > `itk::MemoryAllocationError::MemoryAllocationError(std::__
> cxx11::basic_string<char,
> > std::char_traits<char>, std::allocator<char> > const&, unsigned int,
> > std::__cxx11::basic_string<char, std::char_traits<char>,
> > std::allocator<char> > const&, std::__cxx11::basic_string<char,
> > std::char_traits<char>, std::allocator<char> > const&)':
> > helloItk.cpp:(.text._ZN3itk21MemoryAllocationErrorC
> 2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjS8_S8_[_
> ZN3itk21MemoryAllocationErrorC5ERKNSt7__cxx1112basic_stringIcSt11char_
> traitsIcESaIcEEEjS8_S8_]+0x35):
> > undefined reference to
> > `itk::ExceptionObject::ExceptionObject(std::__cxx11::basic_string<char,
> > std::char_traits<char>, std::allocator<char> > const&, unsigned int,
> > std::__cxx11::basic_string<char, std::char_traits<char>,
> > std::allocator<char> > const&, std::__cxx11::basic_string<char,
> > std::char_traits<char>, std::allocator<char> > const&)'
> > collect2: error: ld returned 1 exit status
> > CMakeFiles/HelloItk.dir/build.make:204: recipe for target 'HelloItk'
> failed
> > make[2]: *** [HelloItk] Error 1
> > CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/HelloItk.dir/all'
> > failed
> > make[1]: *** [CMakeFiles/HelloItk.dir/all] Error 2
> > Makefile:83: recipe for target 'all' failed
> > make: *** [all] Error 2
> >
> >
> > I've confirmed that the i've installed all four ubuntu packages mentioned
> > here:
> > https://blog.kitware.com/itk-packages-in-linux-distributions/
> > (including the python bindings)
> >
> > The itk libs seem to be in /usr/local/lib but for some reason the linker
> > isn't seeing them.
> >
> > Anyone got any ideas?
> >
> >
> >
> >
> >
> >
> >
> >
> > --
> > View this message in context: http://itk-insight-users.
> 2283740.n2.nabble.com/Linker-problems-since-Ubuntu-16-04-
> upgrade-tp7589172.html
> > Sent from the ITK Insight Users mailing list archive at Nabble.com.
> > _____________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> >
> > Kitware offers ITK Training Courses, for more information visit:
> > http://www.kitware.com/products/protraining.php
> >
> > Please keep messages on-topic and check the ITK FAQ at:
> > http://www.itk.org/Wiki/ITK_FAQ
> >
> > Follow this link to subscribe/unsubscribe:
> > http://public.kitware.com/mailman/listinfo/insight-users
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/insight-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20160908/5f0322b3/attachment.html>


More information about the Insight-users mailing list