![]() |
|
|
![]()
|
|
| RinOSpro |
|
|||
|
Unregistered |
Всем привет! Решил перенести DLL с Borland C++ на Qt, все получилось кроме того, что раньше из DLL я экспортировал 4 функции… а после перекомпиляции на Qt появилась целая туча функции которые мне не нужны.
![]() Компилировал как в Debug, так и в Release. Экспортирую так:
Как лечить? |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
Проблема никак не связана ни с Си++, ни с Qt, а связана с компилятором/линковщиком/настройками_IDE.
У меня, например, Qt-шная dll-ка, экспортирующая одну ф-цию, реально только её и экспортирует. Я использую MSVC 2008. В общем, кури в сторону опций компиляции/линковки -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
RinOSpro, вообще-то, extern "C" - это не экспорт функции. Это лишь сигнал компилятору о том, чтобы он не делал сложное имя функции. А экспорт - это __declspec(dllexport) перед объявлением функции или класса.
По умолчанию, линуксовый компилятор экспортирует все функции и переменные. Чтобы он этого не делал, добавляют специальный ключи (для GCC/mingw: -fvisibility=hidden -fvisibility-inlines-hidden). Так как Qt SDK по умолчанию поставляется с mingw, то компилятор там изначально из unix. Возможно, со всеми вытекающими. Это сообщение отредактировал(а) bsa - 21.11.2011, 12:01 |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
А где прописывать эти ключи компилятора? |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
в настройках компилятора, на которые ссылался borisbn. почитай документацию.
|
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
Лишние экспорты сами исчезли когда я перед нужными функциями поставил: extern "C" __declspec(dllexport)
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, 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. |