Экспорт классов в gcc (MinGW) |
Здравствуйте, гость ( Вход | Регистрация )
Экспорт классов в gcc (MinGW) |
soMan |
4.3.2012, 14:24
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 30.8.2011 Пользователь №: 2839 Спасибо сказали: 0 раз(а) Репутация: 0 |
Требуется написать библиотеку, но ни разу этого не делал. В частности никогда не экспортировал классы. Подскажите, пожалуйста, как в gcc с экспортом целых классов?
Достаточно ли будет нижеследующего кода для экспорта или такое не прокатит?
И что по поводу тех классов, члены которых содержат экземляры STLовских классов или классов стандартной библиотеки? Нормально ли экспортируется след. код? Читал где-то, что мелкомягкий компиль более-менее с нытьем (warnings) экспортирует, про gcc же ни слова.
Возможно, кто-то сталкивался с этим, буду рад услышать ответы, а так же подводные камни, которые следует знать и учесть. |
|
|
Iron Bug |
5.3.2012, 22:48
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
в gcc у тебя экспортируются все классы, есть специальные декларации для ограничения видимости:
http://gcc.gnu.org/wiki/Visibility учти, что совместимости таких библиотек между разными компиляторами нет. т.е., нельзя экспортировать классы из библиотеки, скомпиленной под gcc, и использовать её в вызовах из программы, скомпиленной под msvc, например. в пределах одного компилятора проблем с STL-объектами вроде не наблюдалось. не экспортируются разве что темплейты - ну, это понятно почему: ибо генерятся на уровне компиляции. Сообщение отредактировал Iron Bug - 5.3.2012, 23:01 |
|
|
soMan |
6.3.2012, 23:26
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 30.8.2011 Пользователь №: 2839 Спасибо сказали: 0 раз(а) Репутация: 0 |
Iron Bug, благодарю за ответ. Темплейты не юзаю у себя, думаю норм все в библиотеку соберется. Чтобы не создавать снова тему еще хотелось бы спросить все о том же gcc: как можно узнать причину SIGINT? При отладке приложения после отработки всех функций получаю SIGINT (Quit with SIGINT). Отдельный запуск приложения без отладки отрабатывает нормально. В Вики прочитал, что мол прерывание процесса это. Вопрос почему и как за хвост поймать?
|
|
|
Iron Bug |
7.3.2012, 7:04
Сообщение
#4
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
|
|
|
Текстовая версия | Сейчас: 19.4.2024, 13:50 |