Как добавить библиотеки dcmtk в проект QTCreator?

Я очень новичок в QTCreator. Я сделал небольшую программу с использованием библиотек Dcmtk в Visual Studio, теперь я пытаюсь сделать это с помощью GUI, и для этого я пытаюсь сделать ту же программу в QTCreator, чтобы я мог добавить эту функцию GUI. Но проблема возникает, когда я пытаюсь добавить файлы заголовков и.lib в QTCreator. При выполнении программы в Visual Studio я добавил следующие библиотеки библиотек:

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

с каталогом библиотеки для режима отладки:

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

и для режима релиза было

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

Для добавления файлов заголовков в Visual Studio я включил каталоги включения в виде:

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

Итак, для QTCreator в файле.pro я отредактировал и добавил файлы 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 ответ

Решение
  1. Вы забыли цитаты в INCLUDEPATH
  2. Ты забыл -L префикс перед путем в LIBS
  3. Ты забыл \ после пути в LIBS,
  4. Вы не должны использовать абсолютные пути. Если вам нужно, извлеките его в переменную.
  5. Вы должны отделить ваши случаи отладки и выпуска, используя CONFIG(debug, debug|release)

Итак, ваш проект должен выглядеть

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
Другие вопросы по тегам