Я новичок в Elastix и застрял в самом начале. Я пытаюсь скомпилировать базовую программу Verry в C ++, которая будет создавать экземпляр использования библиотеки elastix. Когда я попытался скомпилировать программу, я получил ошибку компоновщика:
Ошибка LNK2019: внешний символ «public: virtual __cdecl elastix
ELASTIX :: :: ~ ELASTIX (void) «(?? 1ELASTIX @ elastix FALU @@@ XZ)
неразрешенный, упомянутый в «публичной функции: virtual void * __cdecl
elastix eLASTIX :: :: `скалярное удаление деструктора ‘(без знака int)» (??
_ @ elastix GELASTIX UEAAPEAXI @@@ Z)
Я сделал гуглинг и обнаружил, что это проблема популярного компоновщика: увидеть эту тему и этот и эта конкретная почтовая сеть elastix. Я пытался исправить это с помощью этих ссылок, но безуспешно. Мне интересно, могли бы вы, ребята, помочь мне. ниже вы можете найти мои исходные файлы (код CMakeList.txt и C ++) и некоторую дополнительную информацию: я запускаю windows 7, версия Cmake 3.0.2, версия ITK 4.6, версия elastix 4.7 и Microsoft VS 2008. Заранее спасибо
CmakeList.txt
# Пример проекта для использования кода elastix из внешних проектов.
ПРОЕКТ (elxExternalProject)
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
# Find TIK
FIND_PACKAGE( ITK REQUIRED )
INCLUDE( ${ITK_USE_FILE} )
# find elastix
SET( ELASTIX_BINARY_DIR "" CACHE PATH "Path to elastix binary folder" )
SET( ELASTIX_USE_FILE ${ELASTIX_BINARY_DIR}/UseElastix.cmake )
IF( EXISTS ${ELASTIX_USE_FILE} )
MESSAGE( STATUS "Including Elastix settings." )
INCLUDE( ${ELASTIX_USE_FILE} )
ENDIF()
# Build a small test executable (this test is basically the same as
# the one found in the <elastix-dir>/src/Testing dir.
ADD_EXECUTABLE( elxtimertest itkTimerTest.cxx )
# Link to some libraries
TARGET_LINK_LIBRARIES( elxtimertest
ITKCommon elxCommon elastix )
Код C ++
#include "elastixlib.h"using namespace elastix;
int main( int argc, char *argv[] )
{
ELASTIX* el = new ELASTIX();
std::cerr << "elastix created" << std::endl;
delete el;
return 0;
}
Так что я понял это. Я отследил все это, и казалось, что CMake не применяет мои изменения, которые я сделал в GUI. Так что я сменил CMakeLists вручную. После этого работал как шарм