2011-10-05 75 views
1

我是一个C++新手,也许这是一个非常愚蠢的问题,但是如何从静态链接库中包含头文件?Qt Creator和静态库

我创建了一个静态库Qt Creator中具有以下.pro文件:

QT -= gui 
TARGET = Foobar 
TEMPLATE = lib 
CONFIG += staticlib 

SOURCES += thefoobar.cpp \ 
    sub/subbar.cpp 

HEADERS += thefoobar.h \ 
    sub/subbar.h 

编译它,并把产生的libFoobar.a到我的目标项目的“extstaticlibs”文件夹中。

在.pro文件我已经添加了以下几行我的目标项目:

LIBS += -L$$PWD/extstaticlibs/ -lFoobar 
INCLUDEPATH += $$PWD/extstaticlibs 

目标项目编译没有问题。但是,当我尝试包括在我的代码文件中的一个标题thefoobar.h:

#include "thefoobar.h" 

它总是导致一个错误:

error: thefoobar.h: No such file or directory 

正确的语法任何建议将是非常赞赏。

的Kristoffer

回答

1

检查您放置“thefoobar.h”头文件的位置。将它放在“extstaticlibs /”文件夹中。

1

如果我正确地按照你的描述,你只把静态库到您的extstaticlibs目录。 您还需要继承您的thefoobar.h文件。如果按照常见的结构,你可以做:

extstaticlibs/include <- thefoobar.h goes here 
extstaticlibs/lib <- libFoobar.a goes here 

然后,您需要修改的项目文件是这样的:

LIBS += -L$$PWD/extstaticlibs/lib -lFoobar 
INCLUDEPATH += $$PWD/extstaticlibs/include 

当然,你都可以把它扔在一个目录下,如果你想,但在开始时可能会有所帮助。