これは新しい質問ではありませんが、解決策は私にとっては効果がありません。私はC++を使ってdicomファイルを読みたいと思っています。私はVS 2013コミュニティ版の32ビットWindows PCを持っています。Visual StudioでDCMTKを使用した場合のリンカエラーLNK2019
This postなどの回答がDCMTKを使用して示唆されています。 DCMTKをインストールし(CMakeにVSを使用)、this postで提供されるガイドラインとリンクを使用してVSで使用するように設定しました。その後、私はシンプルなtest programを書き、それをコンパイルしようとした:コンパイル時
#include "stdafx.h"
#include "dcmtk\dcmdata\dctk.h"
#include "dcmtk\config\osconfig.h"
#include "dcmtk\dcmimgle\dcmimage.h"
#include <iostream>
using namespace std;
int main()
{
DicomImage *image = new DicomImage("test.dcm");
if (image != NULL)
{
if (image->getStatus() == EIS_Normal)
{
if (image->isMonochrome())
{
image->setMinMaxWindow();
Uint8 *pixelData = (Uint8 *)(image->getOutputData(8 /* bits */));
if (pixelData != NULL)
{
/* do something useful with the pixel data */
}
}
}
else
cerr << "Error: cannot load DICOM image (" << DicomImage::getString(image->getStatus()) << ")" << endl;
}
delete image;
return 0;
}
を、それが次のエラーを与える:
dcmdata.lib(dcuid.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function "unsigned char * __cdecl getMACAddress(unsigned char * const)" ([email protected]@[email protected])
このエラーは、一般的のようですが、次のソリューションのどれも私のために働くん:
FAQ#27とDCMTKフォーラムのanother post
:それが含まれるLIBファイルの特定の順序を使用することを提案しています。このすべてがうまくいかない
:ファイルを含めて私の順番は(私も逆の順序を試みたが、それはうまくいきませんでした)次のとおりです。 実際、どのlibファイルが含まれるはずですか?それをどうやって決めるの?
また、追加のライブラリディレクトリの下に「C:¥Program Files¥DCMTK¥lib」とプロジェクトプロパティの追加のインクルードディレクトリの下に「C:¥Program Files¥DCMTK¥include」が含まれています。
- Another similar question at stackoverflowには答えられていません。 DCMTK_OVERWRITE_WIN32_COMPILER_FLAGSを無効にしてCMakeを再実行することをお勧めします。 DCMTK help pageはあなたが何をしているのか本当に分かっていない限り、これを無効にしないと言っています。
ガイドできますか?
私はNETAPI32.libを先頭に移動し、リストの残りの部分は同じにしても動作しません:( – Ruchir