Russian Qt Forum
Ноябрь 24, 2024, 01:21
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Установка, сборка, отладка, тестирование
>
Взаимодействие проектов
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Взаимодействие проектов (Прочитано 8980 раз)
dr_Begemot
Гость
Взаимодействие проектов
«
:
Май 07, 2009, 10:13 »
Проблема в следующем, есть динамическая библиотека на Qt. Однако в некоторых других прооектах нужно, чтобы эта библиотека была статической. Можно ли как-то прописать в pro-файлах этих других проектов, чтобы библиотека была перекомпилена в статическую либу?
Записан
spirit
Гость
Re: Взаимодействие проектов
«
Ответ #1 :
Май 07, 2009, 10:15 »
библиотеку надо статически собирать.
Записан
spirit
Гость
Re: Взаимодействие проектов
«
Ответ #2 :
Май 07, 2009, 10:17 »
вот, кстати, нашел про то
как создавать либы
, а так же
как собирать приложения статически
.
PS. не ну действительно, че так сложно поискать по форуму, по вики?
Записан
dr_Begemot
Гость
Re: Взаимодействие проектов
«
Ответ #3 :
Май 07, 2009, 10:28 »
Цитата: spirit от Май 07, 2009, 10:17
вот, кстати, нашел про то
как создавать либы
, а так же
как собирать приложения статически
.
PS. не ну действительно, че так сложно поискать по форуму, по вики?
Я знаю как создавать dll и как делать их статическими, вопрос был в другом...
Записан
ритт
Гость
Re: Взаимодействие проектов
«
Ответ #4 :
Май 07, 2009, 11:11 »
вопрос был "Можно ли как-то прописать в pro-файлах этих других проектов, чтобы динамическая библиотека превратилась в статическую либу?"
spirit ответил на вопрос.
Записан
Dodge
Гость
Re: Взаимодействие проектов
«
Ответ #5 :
Май 07, 2009, 13:06 »
Цитата: dr_Begemot от Май 07, 2009, 10:28
Я знаю как создавать dll и как делать их статическими, вопрос был в другом...
если вы в качестве системы сборки вы используете qmake, то он при генерации Make - файла для библиотеки, создает цель для сборки - staticlib. Т.о. указав при сборке в качестве цельи - staticlib, вы можете собрать библиотеку статически.
Код:
make staticlib
З.Ы. проверено только под линукс, как с другими платформами я не знаю.
Записан
ритт
Гость
Re: Взаимодействие проектов
«
Ответ #6 :
Май 07, 2009, 20:58 »
в проекте cmake вроде бы можно сразу указать сборку динамической и статической либы...
Записан
Dodge
Гость
Re: Взаимодействие проектов
«
Ответ #7 :
Май 07, 2009, 22:06 »
Цитата: Константин от Май 07, 2009, 20:58
в проекте cmake вроде бы можно сразу указать сборку динамической и статической либы...
если они будут лежать рядом, то линкер какую возмет? ... имена то одинаковые
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Взаимодействие проектов
«
Ответ #8 :
Май 07, 2009, 22:29 »
>>если они будут лежать рядом, то линкер какую возмет? ... имена то одинаковые
туже, что и файловая система
Записан
Юра.
Dodge
Гость
Re: Взаимодействие проектов
«
Ответ #9 :
Май 07, 2009, 22:34 »
не понял... что первое по запросу попадет? ... это не серьезно
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Взаимодействие проектов
«
Ответ #10 :
Май 07, 2009, 22:43 »
не может быть двух одинаковых файловых объекта. Т.е. два файла с одинаковыми именами в одном каталоге.
Записан
Юра.
Dodge
Гость
Re: Взаимодействие проектов
«
Ответ #11 :
Май 07, 2009, 22:55 »
Цитата: lit-uriy от Май 07, 2009, 22:43
не может быть двух одинаковых файловых объекта. Т.е. два файла с одинаковыми именами в одном каталоге.
я не идиот
я имел ввиду имена библиотек. Если мы собирем библиотеку mytest статически и динамически то получим 2 файла (пример для gcc): libmytest.so и libmytest.a
При подключении мы указываем имя библиотеки: "-lmytest". Так вот какой из файлов, линкер возмет?
Записан
ритт
Гость
Re: Взаимодействие проектов
«
Ответ #12 :
Май 08, 2009, 00:01 »
-lmytest при наличии libmytest.so будет использовать его, а -llibmytest.a будет искать .а-файл
кажется, так...могу ошибаться...
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Взаимодействие проектов
«
Ответ #13 :
Май 08, 2009, 08:07 »
>>libmytest.so и libmytest.a
ну для линя оно может и так. А вот для виндовоза при создании динамической библиотеки генерятся два файла
mytest.dll и mytest.a
и для статической один
mytest.a
как я понял в первом случае a-файл некая обёртка для dll'ки. Так что в одном каталоге, на виндовозе, две сборки держать не удастся.
Записан
Юра.
Dodge
Гость
Re: Взаимодействие проектов
«
Ответ #14 :
Май 08, 2009, 14:21 »
Цитата: lit-uriy от Май 08, 2009, 08:07
>>libmytest.so и libmytest.a
ну для линя оно может и так. А вот для виндовоза при создании динамической библиотеки генерятся два файла
mytest.dll и mytest.a
и для статической один
mytest.a
как я понял в первом случае a-файл некая обёртка для dll'ки. Так что в одном каталоге, на виндовозе, две сборки держать не удастся.
записал.
Тогда проверь еще пожалуйста в Makefile'е, генерит qmake цель для staticlib? ... чтоб сразу со всем разобраться.
лень винду грузить смотреть.
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...