Qt Creator和静态库

时间:2011-10-05 17:14:41

标签: c++ qt-creator

我是C ++的新手,也许这是一个非常愚蠢的问题,但是如何包含来自静态链接库的标题呢?

我在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

2 个答案:

答案 0 :(得分: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

当然,如果你愿意的话,你可以把它扔在一个目录中,但是在开头解决问题可能会有所帮助。

答案 1 :(得分:1)

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