我是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
答案 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 /”文件夹中。