Связать библиотеки ITK в Eclipse
Мой проект работал на Eclipse должным образом, но внезапно у меня появилось слишком много ошибок, поэтому я перезапустил настройку всего с самого начала. Сейчас я использую простой класс Hello world, и он отлично работает (он печатает все), но у меня много ошибок в консоли. Я считаю, что что-то мне не хватает при настройке всего вместе.
Найдите ниже класс HelloWorld:
#include "itkImage.h"
#include <iostream>
int main()
{
typedef itk::Image< unsigned short, 3 > ImageType;
ImageType::Pointer image = ImageType::New();
std::cout << "Hello ITK World 1" << std::endl;
constexpr unsigned int dimension = 3;
std::cout << dimension << std::endl;
return 0;
}
Найти ниже CMakeLists.txt
cmake_minimum_required(VERSION 3.6.2)
set(ITK_DIR "/home/itk/lib/cmake/ITK-4.13/")
set(VTK_DIR "/home/vtk/lib/cmake/vtk-8.1/")
set(CMAKE_C_COMPILER "gcc")
project(Main)
find_package(ITK REQUIRED)
include(${ITK_USE_FILE})
add_executable(Main Main.cxx)
target_link_libraries(Main ${ITK_LIBRARIES})
Найти ниже ошибки появляются в консоли (я скопировал только небольшую часть, но они больше!)
15:46:13 **** Инкрементная сборка конфигурации По умолчанию для проекта ProjectTwo **** сделать все Цель строительства: ProjectTwo Вызов: Cross G++ Linker g ++ -o "ProjectTwo"./src/Main.o
./src/Main.o: в функцииitk::ImageBase<3u>::Graft(itk::DataObject const*)': /home/itk/include/ITK-4.13/itkImageBase.hxx:372: undefined reference to
typeinfo для itk::DataObject' ./src/Main.o: в функцииvnl_svd<double>::~vnl_svd()': /home/itk/include/ITK-4.13/vnl/algo/vnl_svd.h:86: undefined reference to
vnl_matrix::~vnl_matrix()' ./src/Main.o: в функции~vnl_diag_matrix': /home/itk/include/ITK-4.13/vnl/vnl_diag_matrix.h:57: undefined reference to
vnl_vector::~vnl_vector()' /home/itk/include/ITK-4.13/vnl/vnl_diag_matrix.h:57: неопределенная ссылка наvnl_vector<double>::~vnl_vector()' ./src/Main.o: In function
vnl_svd::~vnl_svd()': /home/itk/include/ITK-4.13/vnl/algo/vnl_svd.h:86: неопределенная ссылка наvnl_matrix<double>::~vnl_matrix()' ./src/Main.o: In function
itk::ImageBase<3u>::~ImageBase()': /home/itk/include/ITK-4.13/itkImageBase.hxx:90: неопределенная ссылка наitk::DataObject::~DataObject()' ./src/Main.o: In function
~ImageBase': /home/itk/include/ITK-4.13/itkImageBase.hxx:90: неопределенная ссылка наitk::DataObject::~DataObject()' /home/itk/include/ITK-4.13/itkImageBase.hxx:90: undefined reference to
itk::DataObject::~DataObject()' ./src/Main.o: в функцииitk::ImportImageContainer<unsigned long, unsigned short>::~ImportImageContainer()': /home/itk/include/ITK-4.13/itkImportImageContainer.hxx:50: undefined reference to
itk::Object::~Object()' ./src/Main.o: в функции~ImportImageContainer': /home/itk/include/ITK-4.13/itkImportImageContainer.hxx:50: undefined reference to
itk::Object::~Object()' ./src/Main.o: в функцииMemoryAllocationError': /home/itk/include/ITK-4.13/itkExceptionObject.h:183: undefined reference to
itk::ExceptionObject::ExceptionObject(std::string const&, unsigned int, std::string const&, std::string const&)' /home/itk/include/ITK-4.13/itkExceptionObject.h:183: неопределенная ссылка наvtable for itk::MemoryAllocationError' ./src/Main.o: In function
itk::ImportImageContainer::AllocateElements(unsigned long, bool) const': /home/itk/include/ITK-4.13/itkImportImageContainer.hxx:201: неопределенная ссылка наitk::MemoryAllocationError::~MemoryAllocationError()' /home/itk/include/ITK-4.13/itkImportImageContainer.hxx:201: undefined reference to
typeinfo для itk::MemoryAllocationError' ./src/Main.o: в функцииitk::Image<unsigned short, 3u>::Graft(itk::DataObject const*)': /home/itk/include/ITK-4.13/itkImage.hxx:130: undefined reference to
typeinfo для itk::DataObject' makefile:45: рецепт для цели'ProjectTwo'не выполнен /home/itk/include/ITK-4.13/itkImage.hxx:139: неопределенная ссылка наitk::ExceptionObject::ExceptionObject(char const*, unsigned int, char const*, char const*)' /home/itk/include/ITK-4.13/itkImage.hxx:139: undefined reference to
itk::ExceptionObject::ExceptionObject(itk::ExceptionObject const&)' /home/itk/include/ITK-4.13/itkImage.hxx:139: неопределенная ссылка наitk::ExceptionObject::~ExceptionObject()' /home/itk/include/ITK-4.13/itkImage.hxx:139: undefined reference to
typeinfo для itk::ExceptionObject' /home/itk/include/ITK-4.13/itkImage.hxx:139: неопределенная ссылка на `itk::ExceptionObject::~ExceptionObject()'
Интересно, он использует компилятор G++ (Cross G++ Linker g++ -o "ProjectTwo" ./src/Main.o
./src/Main.o:
), когда я заставил его использовать компилятор GCC. На веб-странице ITK я обнаружил, что компилятор GCC поддерживается только!!