我是elastix的新手,刚开始时就卡在了头上。我正在尝试在C++中编译一个通用的基本程序,该程序将实例化使用elastix库。当我尝试编译程序时,出现链接器错误:
我已经做了一些糊涂,发现它实际上是一个流行的链接器问题:see this topic and this one and this particular elastix mail chain。我试图使用这些链接修复它,但没有成功。我想知道你们是否可以帮助我。在下面,您可以找到我的源文件(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中所做的更改。因此,我用手 push 了CMakeLists。之后,像魅力一样工作