首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确连接Dcmtk和Qt for Linux?

如何正确连接Dcmtk和Qt for Linux?
EN

Stack Overflow用户
提问于 2018-08-28 03:01:47
回答 1查看 161关注 0票数 0

我的目标是打开Dicom文件并将其转换为cv::Mat,以便用Opencv处理它们。

我已经在ubuntu 18.4.1上编译了dcmtk 3.6.3,并尝试使用Qt Creator 4.6.2将其与Qt 5.11.1链接,但失败了。

代码语言:javascript
复制
# 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

代码语言:javascript
复制
#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();
}

我得到了这样的错误:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-28 13:04:27

该错误指示链接器找不到库提供的符号(方法)。在.pro文件中,您将链接器指向您的库所在的目录,但忘记指定应链接哪个库。

因此,您必须相应地修改行LIBS +=...,例如:

代码语言:javascript
复制
LIBS += -L$$DCMTK_LIBS_PREFIX -ldcmtk

因为我不知道库的实际名称,所以我在示例中使用了dcmtk。您可能必须采用它来适应您的构建环境。只需确保您有-l (小写L),后面紧跟库名即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52045499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档