Russian Qt Forum
Ноябрь 24, 2024, 02:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Создание и подключение статических библиотек  (Прочитано 13834 раз)
Elfet
Гость
« : Декабрь 15, 2009, 15:54 »

Привет всем!

Объясните, пожалуйста, как корректно создавать и подключать статические библиотеки в Qt?
(предполагается импорт функций и классов)

Пытаюсь создать "интуитивно", что-то получается похожее на библиотеку - создаётся файл с расширением *.a (почему не lib?!)
Но при попытке использовать эту библиотеку, начинают вылезать ошибки типа

undefined reference to `_imp___ZN9LinAlgLibC1Ev'

Ничего не понимаю =)))
Можт какие-нибудь дополнительные директивы нужно добавить?

Спасибо.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Декабрь 15, 2009, 15:58 »

>>создаётся файл с расширением *.a (почему не lib?!)
стало быть пользуешься компилятором GNU, а не Студией и не борландом
Записан

Юра.
Elfet
Гость
« Ответ #2 : Декабрь 15, 2009, 22:05 »

Да, minGW.
Записан
crackedmind
Гость
« Ответ #3 : Декабрь 16, 2009, 08:18 »

Например:
Код:
LIBS += -lkernel32
И эта конструкция подключит libkernel32.a
Записан
Elfet
Гость
« Ответ #4 : Декабрь 16, 2009, 13:16 »

У меня вот что выдает теперь:
D:\Qt\2009.04\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -llibmyl

Где нужно размещать библиотеку что бы её было видно? Или как указать из какого каталога нужно загружать библиотеку?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #5 : Декабрь 16, 2009, 13:41 »

Прочитай вот эту статью Создание динамических библиотек
Там вся основа расписана.
Записан

Юра.
Elfet
Гость
« Ответ #6 : Декабрь 16, 2009, 14:42 »

lit-uriy, это динамические библиотеки. А мне нужна статическая. Но кажется я уже разобрался как это делается.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #7 : Декабрь 16, 2009, 15:11 »

>>lit-uriy, это динамические библиотеки.
А в чём разница?
Записан

Юра.
Elfet
Гость
« Ответ #8 : Декабрь 16, 2009, 15:18 »

Основная разница между статическими и динамическими библиотеками заключается в следующем: Если используется статическая библиотека, то на стадии редактирования связей в состав исполняемого модуля включаются все функции, для которых обнаружено обращение из текста исходной программы. В отличие от этого вызов модуля из динамической библиотеки происходит только на стадии выполнения программы. При таком подходе библиотечные функции не включаются в состав исполняемого модуля, его размеры становятся меньше и, тем самым, экономится место, занимаемое исполняемыми файлами на диске.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #9 : Декабрь 16, 2009, 17:22 »

из написаного я не вижу причин, чтобы не воспользоваться руководством ссылку на которое я привёл. Тем более, что я написал:
"Там вся основа расписана."
И такие элементарные вещи как "... как указать из какого каталога нужно загружать библиотеку?" там есть
Записан

Юра.
Elfet
Гость
« Ответ #10 : Декабрь 16, 2009, 23:19 »

Я уже сам разобрался. И так в той статье, не то Подмигивающий
Записан
Mouse12x3oz
Гость
« Ответ #11 : Ноябрь 06, 2011, 22:39 »

Здравствуйте!!! Как?Как Вы разобрались??У меня та же проблема!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 22.