2013-05-03 149 views
1

我对QTCreator很陌生。我在Visual Studio中制作了一个使用Dcmtk库的小程序,现在我正在尝试使用GUI来做到这一点,为此我试图在QTCreator中制作相同的程序,以便添加该GUI功能。但是当我尝试将头文件和.lib文件添加到QTCreator时,会出现问题。在做Visual Studio中的程序添加以下库库:如何将dcmtk库添加到QTCreator项目中?

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文件时犯了什么错误?

SOLUTION:

我改变外部链接到下面的.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/" 
+0

'INCLUDEPATH * ='* =看起来很奇怪。 (你在那条线上缺少引号。在包含或libs的路径中有空间是浪费大量时间与各种公用事业打交道的好方法,它们根本不期望它们) – Mat 2013-05-03 09:31:12

+0

其实我只是想用这种方式,但即使我把INCLUDEPATH =它不起作用。我现在编辑了这部分内容。 – 2013-05-03 09:34:48

+0

你仍然缺少报价。 (而且应该是+ =而不是* =,但应该是正确的=)。 – Mat 2013-05-03 09:40:01

回答

1
  1. 你忘了引号INCLUDEPATH
  2. 你忘了-L前缀在路径前LIBS
  3. 您忘记了\在后的路径。
  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 
+0

我想配置Qt创建者与DCMTK和我得到以下错误:“dcmtk/config/osconfig.h:没有这样的文件或目录”。我已经将您的代码添加到我的.pro文件,并且我确信这些文件位于正确的文件夹中。如何解决这个问题?我的.pro文件:http://pastebin.com/h7gm4VxM。我的main.cpp文件:http://pastebin.com/zv8Tw3Qw – Engo 2015-11-09 15:18:15

+0

@Engo,确保你的所有文件都在那里。根据到你的配置'osconfig.h'应该是'C:/ dcmtk-install/include/dcmtk/config/osconfig.h'。如果不存在,找到它的实际位置并相应地更改你的路径 – Lol4t0 2015-11-09 15:48:30

+0

我确定文件当我按下Qt编辑器中的ctrl + [include]时,它甚至会打开osconfig.h:S – Engo 2015-11-09 16:18:16

相关问题