2013-11-05 37 views
1

我对Qt 5和Qt Creator相当陌生。我创建了一个名为D20Controls的库项目。我有D20Controls.lib文件。在我的项目中,我想使用我的lib D20Controls的类。所以我右键单击我的项目并添加库...我选择外部库,然后浏览到我的D20Controls.Lib文件。现在一切似乎都正确地添加到我的.pro文件。Qt #include不适用于外部库

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../build-D20Controls-Desktop_Qt_5_1_1_MSVC2012_64bit-Debug/release/ -lD20Controls 
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../build-D20Controls-Desktop_Qt_5_1_1_MSVC2012_64bit-Debug/debug/ -lD20Controls 

INCLUDEPATH += $$PWD/../../build-D20Controls-Desktop_Qt_5_1_1_MSVC2012_64bit-Debug/debug 
DEPENDPATH += $$PWD/../../build-D20Controls-Desktop_Qt_5_1_1_MSVC2012_64bit-Debug/debug 

win32:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/../../build-D20Controls-Desktop_Qt_5_1_1_MSVC2012_64bit-Debug/release/D20Controls.lib 
else:win32:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/../../build-D20Controls-Desktop_Qt_5_1_1_MSVC2012_64bit-Debug/debug/D20Controls.lib 

但是当我想在我的项目中使用它 #include <D20Controls>或任何.h文件中,我不能编译错误,如: ... main.cpp中:4:错误:C1083:不能打开包含文件:'D20Controls':没有这样的文件或目录

我怎样才能使用我的lib? (我曾尝试过静态链接和动态链接)

我错过了什么?

+0

显而易见的问题是,你有一个名为D20Controls.h(或D20Controls没有.h)的文件吗?这就是错误在说什么,而不是文件D20Controls.lib。 – john

+0

事实上,我没有,但有没有一种方法来包括整个库,而不是像每个.h文件一样,如 – yhcowboy

+0

'#include'用于包含头文件 - 通常后缀为'.h'或'.hpp'。图书馆提供哪些这样的文件?你应该包括那些。 – Angew

回答

1

的措施来解决这样的问题:

  1. 查找文件系统D20Controls.h。如果有几个,请决定哪一个是你想要包含的。

  2. 找到一个实际执行编译命令(例如一个具有-o main.o和它main.cpp),有好几个,但他们通常应该有一个项目中同一-I标志。如果您从Qt Creator编译,请查看屏幕底部的“编译输出”选项卡。如果你从命令行编译,向上滚动或者甚至复制粘贴到某个编辑器。

  3. 查看编译命令是否存在选项,该选项与正确的包含文件的位置相匹配。

  4. 如果没有,请在.pro文件中添加或修复它,重新运行qmake,build。


以上适用于寻找报头,并-I标志编译命令,其指定包括路径。如果它是抱怨的链接器(通常发生在像这样的情况下,在修复包含的情况下),然后找到链接命令(其中一个链接命令为.o,类似-o final-program-name),并查找-L选项,该选项指定链接路径。