2013-03-20 5 views
4

Я пытаюсь создать библиотеку для своего проекта. (Qt5, Qt Creator, VS2010 компилятор)Создайте статическую библиотеку в Qt5 и используйте ее

Я начал с минимального тестового образца, чтобы проверить его работу.

1-я сделал библиотеку, которая содержит класс с методом

2-я скомпилировать его и получить Dll и Lib файлы

3 В главном Aplication я добавить этот LIB и путь к .pro и успешно протестирована библиотека.

Теперь я хочу избавиться от DLL и использовать файл lib как статическую библиотеку.

Так я добавил эту строку в мою библиотеку файл .pro

CONFIG+=staticlib 

Теперь я получаю Lib файл после компиляции, но я не могу использовать его в моем проекте, и я получаю неразрешенные внешние символы ... ошибки

когда я удаляю CONFIG + = staticlib, он снова работает! но не статично.

эти строки я добавил в .pro файл основного проекта для загрузки/библиотеки ссылка

INCLUDEPATH +="G:/TestLib/testLib" 
LIBS +=-l"G:/Build/debug/testLib" 

Итак, вопрос: есть ли возможность иметь свою собственную статическую библиотеку в Qt (нет-коммерческая лицензия)?

Если да, что не так с моим подходом?

shoud Я что-то меняю в LIBS + = ... чтобы указать его статическую библиотеку?

Я прочитал This Article и, похоже, с моим кодом ничего не случилось.

Любая помощь пожалуйста?

EDIT: Проблема решена
Проблема заключалась в том, что нам не нужно Q_DECL_EXPORT и Q_DECL_IMPORT для статических библиотек! , который явно не упоминается в этой отрывочной иллюзорной статье.

+0

Возможно, вам стоит добавить решение в лигу ответа и принять его? – aukaost

ответ

3

Проблема решена

Проблема заключалась в том, что нам не нужно Q_DECL_EXPORT и Q_DECL_IMPORT для статических библиотек! который не упоминается в этой отрывочной иллюзорной статье.

Q_DECL_EXPORT и Q_DECL_IMPORT необходимы для динамических библиотек.