私はエラスティックスの初心者で、最初から立ち往生しています。私は、elastix ライブラリを使用してインスタンス化を行う C++ で非常に基本的なプログラムをコンパイルしようとしています。プログラムをコンパイルしようとすると、リンカー エラーが発生しました。
エラー LNK2019: 外部シンボル "public: virtual __cdecl elastix ELASTIX :: :: ~ ELASTIX (void)" (?? 1ELASTIX @ elastix FALU@@@XZ) unresolved refer to the "public function: virtual void * __cdecl elastix eLASTIX : : :: `スカラー削除デストラクタ '(unsigned 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 コードを使用するためのサンプル プロジェクト。PROJECT( 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;
}