crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Не работает самодельная библиотека, хотя написана правильно =)
QMainWindow
  опции профиля:
сообщение 11.1.2013, 22:25
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 1.8.2010
Пользователь №: 1922

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый вечер.
Делаю для себя библиотеку, состоит из нескольких классов. Компилируется без проблем, но вот когда добавляю ее в тестовый проект и пытаюсь создать объект от какого-нибудь класса, то компилятор сообщает, мол конструктор этого класса не определен. Хотя на самом деле он есть, и если файл этого класса выбрать из библиотеки и прицепить к проекту отдельно, то тогда все нормально работает... Путь к библиотеке в проекте прописал, сделал все необходимые инклюды.
Думал, что с самой библой что-то не так. Тогда сделал новую тестовую библиотеку из двух классов - та же фигня. Не могу понять в чем дело.
Прилагаю файлы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
QMainWindow
  опции профиля:
сообщение 12.1.2013, 21:43
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 1.8.2010
Пользователь №: 1922

Спасибо сказали: 0 раз(а)




Репутация:   0  


Чтобы библиотека увидела другие файлы (классы), надо в заголовочном файле класса добавить:
#include "MyLib_global.h"
А перед названием класса слово:
MYLIBSHARED_EXPORT
Где MyLib - название библиотеки.

Жалко себе "спасибо" поставить нельзя.

Сообщение отредактировал QMainWindow - 12.1.2013, 21:45
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 12.1.2013, 22:15
Сообщение #3


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


когда задаёшь такие вопросы - пиши систему и компилятор. на разных системах и под разными компиляторами экспорт классов совершенно разный. так что причины могут быть разные: от неправильного экспорта до несовместимости компиляторов или особенностей работы компилятора под конкретной осью.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.1.2013, 17:21
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(QMainWindow @ 12.1.2013, 23:43) *
А перед названием класса слово: MYLIBSHARED_EXPORT
И что это слово тебе даст?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 17.1.2013, 13:19
Сообщение #5


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(Litkevich Yuriy @ 16.1.2013, 20:21) *
И что это слово тебе даст?

это слово в вижуал студии автоматом прилепляется к проекту библиотеки, как препроцессорный дефайн. но это только в вижуал студии, и только в довольно свежей студии, и только если проект библиотеки создавался через визард... в общем, крайне узкоспецифическая фича. может, в QTCreator'е она тоже есть, я не знаю.

Сообщение отредактировал Iron Bug - 17.1.2013, 13:20
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.1.2013, 14:34
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Iron Bug @ 17.1.2013, 15:19) *
как препроцессорный дефайн
я собственно из-за этого и спросил, "слово" написал, а определения нет.

П.С.
креатором почти не пользуюсь, потому не знаю. Как-то всё в Programers Notepad 2 пишу.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 3.12.2024, 12:36