Qt Creator и статические библиотеки - PullRequest
1 голос
/ 05 октября 2011

Я довольно новичок в 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

Любые предложения по правильному синтаксису будутБуду очень признателен.

Кристоффер

Ответы [ 2 ]

1 голос
/ 10 ноября 2012

Проверьте, где вы разместили файл заголовка "thefoobar.h". Поместите его в папку «extstaticlibs /».

1 голос
/ 19 января 2012

Если я правильно следую вашему описанию, вы ТОЛЬКО помещаете статическую библиотеку в каталог 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

Конечно, вы все можете выбросить его в один каталог, если хотите, но может быть полезно разобраться в начале.

...