![]() |
|
|
![]()
|
|
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Создал в Qt Creator проект библиотеки .dll/.so
Создается класс:
Когда нужно использовать макрос MYLIBSHARED_EXPORT? При использовании gcc в Windows и Linux вроде бы всё работает и без него. |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
во первых, поделись, как у тебя gcc работает в Windows ? во вторых, что ты подразумеваешь под "всё работает" ? посмотри в mylib_global.h как этот дефайн описан. будет непонятно - спрашивай -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| math64 |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
В Windows gcc ставится вместе с Qt (MinGW)
т.е. при компиляции библиотеки это Q_DECL_EXPORT, при компиляции приложения Q_DECL_IMPORT:
меня особо интересует его использование в шаблонах, нужен ли он здесь:
|
||||||
|
|||||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
gcc != MinGW. У них хоть и общий корень, но это разные компиляторы
совершенно не нужен. этот макрос - фактически указание линковщику, а все шаблонные вещи существуют только на этапе компиляции -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Это только шаблонная inline-функция существует только на этапе компиляции, и то если компилятор не посчитает сделать из неё обычную функцию.
При реализации шаблонного класса создается реальный класс (например, ItemFactory<QGraphicsLineItem>), реализованный либо в библиотеке, либо в приложении.
При неправильном шаблоне могут создаться две копии класса, в приложении и в библиотеке. |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |