gpt4 book ai didi

c++ - 如何将 dcmtk 库添加到 QTCreator 项目?

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:21 24 4
gpt4 key购买 nike

我是 QTCreator 的新手。我在 Visual Studio 中使用 Dcmtk 库制作了一个小程序,现在我正在尝试使用 GUI 制作它,为此我试图在 QTCreator 中制作相同的程序,以便我可以添加该 GUI 功能。但是当我尝试将头文件和.lib 文件添加到QTCreator 时出现问题。在 Visual Studio 中执行程序时,我添加了以下库库:

dcmdata.lib
oflog.lib
ofstd.lib
ws2_32.lib
netapi32.lib

Debug模式下的库目录:

D:\dcmtk-3.6.0\Lib files\Debug;

对于 Release模式是

D:\dcmtk-3.6.0\Lib files\Release;

为了在 Visual Studio 中添加头文件,我将包含目录放在:

D:\dcmtk-3.6.0\Prefix Files\include;

因此,对于 .pro 文件中的 QTCreator,我编辑并添加了 lib 文件和头文件目录,并指出我需要哪些 lib 文件,.pro 文件如下所示:

#-------------------------------------------------
#
# Project created by QtCreator 2013-05-02T10:59:41
#
#-------------------------------------------------

QT += core#adding the core framework

QT -= gui#removing the gui portion

TARGET = untitled#targetting the project
CONFIG += console#defining that it is console application
CONFIG -= app_bundle#

TEMPLATE = app


SOURCES += main.cpp#adding the main.cpp as source file
LIBS +="D:/dcmtk-3.6.0/Lib files/Release"
-ldcmdata\
-loflog\
-lofstd\
-lws2_32\
-lnetapi32\
-wsock32\
LIBS +="D:/dcmtk-3.6.0/Lib files/Debug"
-ldcmdata\
-loflog\
-lofstd\
-lws2_32\
-lnetapi32\
-lwsock32\
INCLUDEPATH += "D:/dcmtk-3.6.0/Prefix Files/include"

我还没有开始编程,但是我只是使用#include指令添加了头文件的名称,代码如下:

#include <QCoreApplication>
#include <QDebug>
#include "dcmtk/config/osconfig.h"
#include "dcmtk/dcmdata/dctk.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

QString mystr="Hellow world";
qDebug() <<mystr;
return a.exec();
}

但是当我尝试构建它时,这会出错。错误如下:

D:\QtFiles\untitled\main.cpp:3: error: C1083: Cannot open include file: '/dcmtk/config/osconfig.h': No such file or directory

在将头文件和 lib 文件链接到程序时,我似乎犯了一些错误。编程代码中的两行

#include "dcmtk/config/osconfig.h"
#include "dcmtk/dcmdata/dctk.h"

不会在 Visual Studio 中给出错误,所以我确定它们没有任何问题。你能告诉我我在链接外部头文件和 lib 文件时犯了什么错误吗?

解决方案:

我更改了 .pro 文件中将外部链接到以下内容的行,它起作用了:

LIBS += -L"D:/dcmtk-3.6.0/Lib files/Release" \
-ldcmdata\
-loflog\
-lofstd\
-lws2_32\
-lnetapi32\
-lwsock32\

LIBS += -L"D:/dcmtk-3.6.0/Lib files/Debug" \
-ldcmdata\
-loflog\
-lofstd\
-lws2_32\
-lnetapi32\
-lwsock32\

INCLUDEPATH += "D:/dcmtk-3.6.0/Prefix Files/include/"

最佳答案

  1. 您忘记了 INCLUDEPATH 中的引号>
  2. 您在 LIBS 中的路径前忘记了 -L 前缀
  3. 您在 LIBS 中的路径后忘记了 \
  4. 你不应该使用绝对路径。如果必须,请将其提取到变量中。
  5. 您应该使用 CONFIG(debug, debug|release)
  6. 将调试和发布情况分开

所以,你的项目应该是这样的

QT       = core
TARGET = untitled#targetting the project
CONFIG += console#defining that it is console application
CONFIG -= app_bundle#
TEMPLATE = app
DCMTK="D:/dcmtk-3.6.0"

DCMTK_LIBS_PREFIX=$$DCMTK"/Lib files"
DCMTK_INCLUDE=$$DCMTK"/Prefix Files/include"
INCLUDEPATH+=$$DCMTK_INCLUDE

SOURCES += main.cpp#adding the main.cpp as source file

CONFIG(debug, debug|release) {
LIBS +=-L$$DCMTK_LIBS_PREFIX/Debug
} else {
LIBS +=-L$$DCMTK_LIBS_PREFIX/Release
}
LIBS+= -ldcmdata -loflog -lofstd -lws2_32 -lnetapi32 -wsock32

关于c++ - 如何将 dcmtk 库添加到 QTCreator 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16355634/

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