Я новичок в elastix и застрял в самом начале. Я пытаюсь скомпилировать очень простую программу на С++, которая создаст экземпляр используемой библиотеки elastix. Когда я попытался скомпилировать программу, я получил ошибку компоновщика:
Ошибка LNK2019: внешний символ "public: virtual __cdecl elastix ELASTIX :: :: ~ ELASTIX (void)" (?? 1ELASTIX @ elastix FALU@@@XZ) неразрешенный, указанный в "public function: virtual void * __cdecl elastix eLASTIX: : :: `скалярный деструктор удаления' (unsigned int)" (?? _ @elastix GELASTIX UEAAPEAXI@@@Z)
Я немного погуглил и обнаружил, что на самом деле это популярная проблема с компоновщиком: symbol-function">см. эту тему и этот и эта конкретная почтовая цепочка 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 )
код С++
#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;
}
make VERBOSE=1
, чтобы увидеть фактические флаги компоновщика, но, поскольку вы, вероятно, используетеnmake
, возможно, это SO question может помочь вам выяснить, что представляют собой фактические флаги. - person user3159253   schedule 09.12.2014