我的目标是打开Dicom文件并将其转换为cv::Mat,以便用Opencv处理它们。
我已经在ubuntu 18.4.1上编译了dcmtk 3.6.3,并尝试使用Qt Creator 4.6.2将其与Qt 5.11.1链接,但失败了。
# pro file
QT += core
QT -= gui
TARGET = DcmtkTesting
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
DCMTK_PREFIX = "/home/ismail/dcmtk363"
DCMTK_LIBS_PREFIX=$$DCMTK_PREFIX"/lib"
DCMTK_INCLUDE=$$DCMTK_PREFIX"/include"
INCLUDEPATH+=$$DCMTK_INCLUDE
LIBS += -L$$DCMTK_LIBS_PREFIX
SOURCES += main.cpp大体上:#include
#include "dcmtk/config/osconfig.h"
#include "dcmtk/dcmdata/dctk.h"
#include <dcmtk/dcmimgle/dcmimage.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
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
cout << "Error: cannot load DICOM image (" << DicomImage::getString(image->getStatus()) << ")" << endl;
}
delete image;
return a.exec();
}我得到了这样的错误:

发布于 2018-08-28 13:04:27
该错误指示链接器找不到库提供的符号(方法)。在.pro文件中,您将链接器指向您的库所在的目录,但忘记指定应链接哪个库。
因此,您必须相应地修改行LIBS +=...,例如:
LIBS += -L$$DCMTK_LIBS_PREFIX -ldcmtk因为我不知道库的实际名称,所以我在示例中使用了dcmtk。您可能必须采用它来适应您的构建环境。只需确保您有-l (小写L),后面紧跟库名即可。
https://stackoverflow.com/questions/52045499
复制相似问题