gpt4 book ai didi

linux - 如何将 Dcmtk 与 Qt for Linux 正确链接?

转载 作者:太空宇宙 更新时间:2023-11-04 10:06:44 27 4
gpt4 key购买 nike

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

我在 ubuntu 18.4.1 上编译了 dcmtk 3.6.3,并尝试将它与 Qt 5.11.1 和 Qt Creator 4.6.2 链接,但失败了。

# 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 "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();
}

我得到了这个错误:

enter image description here

最佳答案

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

所以你必须相应地修改 LIBS +=... 行,例如:

LIBS += -L$$DCMTK_LIBS_PREFIX -ldcmtk

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

关于linux - 如何将 Dcmtk 与 Qt for Linux 正确链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52045499/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com