首页 > 解决方案 > 如何在 ubuntu 18.04 [collect2: error: ld returned 1 exit status] 上解决这个问题?

问题描述

我正在尝试在 ubuntu 18.04 上基于 mitk 编译应用程序。我遇到了一个关于 mitk/itk 的奇怪链接器问题:

    [ 16%] Built target MitkCore
    [ 16%] Built target MitkTestingHelper
    [ 16%] Built target MitkCommandLine
    [ 17%] Built target MitkAppUtil
    [ 17%] Linking CXX shared library ../../lib/libMitkLegacyIO.so
    CMakeFiles/MitkLegacyIO.dir/mitkDataNodeFactory.cpp.o:(.data.rel+0x0): undefined reference to `itk::NiftiImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkDataNodeFactory.cpp.o:(.data.rel+0x8): undefined reference to `itk::NrrdImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkDataNodeFactory.cpp.o:(.data.rel+0x10): undefined reference to `itk::GiplImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkDataNodeFactory.cpp.o:(.data.rel+0x20): undefined reference to `itk::JPEGImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkDataNodeFactory.cpp.o:(.data.rel+0x30): undefined reference to `itk::BMPImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkDataNodeFactory.cpp.o:(.data.rel+0x40): undefined reference to `itk::PNGImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkDataNodeFactory.cpp.o:(.data.rel+0x48): undefined reference to `itk::TIFFImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkDataNodeFactory.cpp.o:(.data.rel+0x50): undefined reference to `itk::VTKImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkDataNodeFactory.cpp.o:(.data.rel+0x68): undefined reference to `itk::MetaImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkFileSeriesReader.cpp.o:(.data.rel+0x0): undefined reference to `itk::NiftiImageIOFactoryRegister__Private()'
 (.data.rel+0x40): undefined reference to `itk::PNGImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkFileSeriesReader.cpp.o:(.data.rel+0x48): undefined reference to `itk::TIFFImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkFileSeriesReader.cpp.o:(.data.rel+0x50): undefined reference to `itk::VTKImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkFileSeriesReader.cpp.o:(.data.rel+0x68): undefined reference to `itk::MetaImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkImageFileReader.cpp.o:(.data.rel+0x0): undefined reference to `itk::NiftiImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkImageFileReader.cpp.o:(.data.rel+0x8): undefined reference to `itk::NrrdImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkImageFileReader.cpp.o:(.data.rel+0x10): undefined reference to `itk::GiplImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkImageFileReader.cpp.o:(.data.rel+0x20): undefined reference to `itk::JPEGImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkImageFileReader.cpp.o:(.data.rel+0x30): undefined reference to `itk::BMPImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkImageFileReader.cpp.o:(.data.rel+0x40): undefined reference to `itk::PNGImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkImageFileReader.cpp.o:(.data.rel+0x48): undefined reference to `itk::TIFFImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkImageFileReader.cpp.o:(.data.rel+0x50): undefined reference to `itk::VTKImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkImageFileReader.cpp.o:(.data.rel+0x68): undefined reference to `itk::MetaImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkPictureWrite.cpp.o:(.data.rel+0x0): undefined reference to `itk::NiftiImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkPictureWrite.cpp.o:(.data.rel+0x8): undefined reference to `itk::NrrdImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkPictureWrite.cpp.o:(.data.rel+0x10): undefined reference to `itk::GiplImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkPictureWrite.cpp.o:(.data.rel+0x20): undefined reference to `itk::JPEGImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkPictureWrite.cpp.o:(.data.rel+0x30): undefined reference to `itk::BMPImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkPictureWrite.cpp.o:(.data.rel+0x40): undefined reference to `itk::PNGImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkPictureWrite.cpp.o:(.data.rel+0x48): undefined reference to `itk::TIFFImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkPictureWrite.cpp.o:(.data.rel+0x50): undefined reference to `itk::VTKImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkItkPictureWrite.cpp.o:(.data.rel+0x68): undefined reference to `itk::MetaImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkRawImageFileReader.cpp.o:(.data.rel+0x0): undefined reference to `itk::NiftiImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkRawImageFileReader.cpp.o:(.data.rel+0x8): undefined reference to `itk::NrrdImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkRawImageFileReader.cpp.o:(.data.rel+0x10): undefined reference to `itk::GiplImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkRawImageFileReader.cpp.o:(.data.rel+0x20): undefined reference to `itk::JPEGImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkRawImageFileReader.cpp.o:(.data.rel+0x30): undefined reference to `itk::BMPImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkRawImageFileReader.cpp.o:(.data.rel+0x40): undefined reference to `itk::PNGImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkRawImageFileReader.cpp.o:(.data.rel+0x48): undefined reference to `itk::TIFFImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkRawImageFileReader.cpp.o:(.data.rel+0x50): undefined reference to `itk::VTKImageIOFactoryRegister__Private()'
    CMakeFiles/MitkLegacyIO.dir/mitkRawImageFileReader.cpp.o:(.data.rel+0x68): undefined reference to `itk::MetaImageIOFactoryRegister__Private()'
    collect2: error: ld returned 1 exit status
    Modules/LegacyIO/CMakeFiles/MitkLegacyIO.dir/build.make:809: recipe for target 'lib/libMitkLegacyIO.so' failed
    make[5]: *** [lib/libMitkLegacyIO.so] Error 1
    CMakeFiles/Makefile2:1515: recipe for target 'Modules/LegacyIO/CMakeFiles/MitkLegacyIO.dir/all' failed
    make[4]: *** [Modules/LegacyIO/CMakeFiles/MitkLegacyIO.dir/all] Error 2
    Makefile:151: recipe for target 'all' failed
    make[3]: *** [all] Error 2
    CMakeFiles/MITK-build.dir/build.make:57: recipe for target 'CMakeFiles/MITK-build' failed
    make[2]: *** [CMakeFiles/MITK-build] Error 2
    CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/MITK-build.dir/all' failed
    make[1]: *** [CMakeFiles/MITK-build.dir/all] Error 2
    Makefile:129: recipe for target 'all' failed
    make: *** [all] Error 2

它停在这里。我没有从 Ubuntu 安装任何 itk 包。我将不胜感激。我应该怎么做才能解决这些问题?

标签: c++linuxgccubuntu-18.04mitk

解决方案


推荐阅读