c++ - 如何在 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 包。我将不胜感激。我应该怎么做才能解决这些问题?
解决方案
推荐阅读
- python-3.x - Twitter API 仅应用程序身份验证 (Python3)
- python - 输入后脚本停止?
- angularjs - 如何在使用AngularJS动态输入文本框时显示最小值和最大值
- excel - 如何根据两个条件将工作簿中的工作表移动到另外两个打开的(新创建的)工作簿参考下面的代码?
- python - python多处理如何在处理结束时杀死侦听器工作人员
- perl - 如何找出 perl 中的哈希参考点在哪里?
- php - Stomp::readFrame() 函数工作很慢?
- python - Pandas - 如何比较两个系列并将两者中的值附加到列表中
- javascript - 表单中的按钮字段
- c# - 如何控制 TextBox Text 作为绑定源何时更新目标值?