| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] Создание и подключение статических библиотек |
| Автор: Rage 14.12.2009, 17:13 |
| Привет всем! Объясните, пожалуйста, как корректно создавать и подключать статические библиотеки в Qt? (предполагается импорт функций и классов) Пытаюсь создать "интуитивно", что-то получается похожее на библиотеку - создаётся файл с расширением *.a (почему не lib?!) Но при попытке использовать эту библиотеку, начинают вылезать ошибки типа undefined reference to `_imp___ZN9LinAlgLibC1Ev' Ничего не понимаю =))) Можт какие-нибудь дополнительные директивы нужно добавить? Спасибо |
| Автор: Elfet 16.12.2009, 15:32 | ||||||
Это из за того что собираешь при помощи minGW, а не студией. Самый просто способ: myLib.pro
Какой-то проект.pro:
Затем в нужно файле .cpp:
И всё должно зароботать |
| Автор: w1zard350 24.5.2010, 22:17 |
| Здавствуйте. У меня возникла такая проблема: Получается на каждую компоненту большого проекта я создаю отдельную статическую библиотеку (незнаю или так правильно). Все шло нормально до тех пор, пока одна библиотека не начала включать другую. Суть проблемы: Есть библиотека "A". Есть библиотека "B". В свою очередь библиотека "B" подключает библиотеку "А". Все хорошо. Теперь я создаю библиотеку "C", которая включает как "А", так и "В". Сборка происходит нормально, но использовать библиотеку "C" уже нельзя. Возникают ошибки "undefined reference to". Все делаю через QtCreator и подключаю либы по примеру выше. Скорее всего у меня подход какой-то не правильный, но как тогда мне сделать? |
| Автор: w1zard350 25.5.2010, 10:34 |
| Немного помучался и понял, что у меня все-таки подход не верный. В инете почитал про компиляцию и все стало на свои места. http://www.firststeps.ru/linux/general1.html все очень хорошо написано. Как я понял, нам не нужно создавать много библиотек. Достаточно создавать только одну, дополняя ее компонентами. Кстати о причине неработоспособности моего подхода выше я пока не понял. |