Russian Qt Forum
Сентябрь 30, 2024, 20:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QScintilla  (Прочитано 5594 раз)
Simpleton
Гость
« : Май 26, 2014, 00:16 »

Доброй ночи!
Помогите разобраться, пожалуйста.
Не получается собрать библиотеку Грустный

В конечном итоге, вышло собрать через Visual Studio - получил lib и dll файлы.
Получается запустить проект с примером QScintilla только в конфигурации release ( соответственно библиотека тоже была собрана в release), в debug (с учетом того, что и библиотека была собрана в debug) программа валится с ошибкой - "QWidget: Must construct a QApplication before a QPaintDevise".

Хотелось бы использовать библиотеку в Qt Creator (компилятор - MinGW), но тут вообще ее собрать не получается (точнее на выходе получается только dll файл, lib попросту отсутствует), а готовая сборка от visual studio (файлы lib и dll) естественно не подходит.

Если у кого есть какие идеи, спасибо!
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Май 26, 2014, 04:47 »

(точнее на выходе получается только dll файл, lib попросту отсутствует)
Конечно отсутствует, просто у mingw расширение не ".lib", а ".a". Улыбающийся
Поэтому, не переживайте, библиотека собирается.
Записан
Simpleton
Гость
« Ответ #2 : Май 26, 2014, 08:14 »

Ах вот оно что Улыбающийся
Благодарю)

А как тогда подключить библиотеку с получившимися libqscintilla2.a и qscintilla2.dll?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #3 : Май 26, 2014, 08:23 »

А как тогда подключить библиотеку с получившимися libqscintilla2.a и qscintilla2.dll?
Как всегда, в pro-файле проекта добавить:
LIBS += -lqscintilla2

Записан
Simpleton
Гость
« Ответ #4 : Май 26, 2014, 08:37 »

"ошибка: cannot find -lqscintilla2"
Грустный

файлы естественно подключил
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #5 : Май 26, 2014, 08:40 »

"ошибка: cannot find -lqscintilla2"
Грустный
Добавьте:
LIBS += -L<path/to/lib> -lqscintilla2

Записан
Simpleton
Гость
« Ответ #6 : Май 26, 2014, 08:53 »

Спасибо большое!
Помогло Улыбающийся

Только теперь такая же история, при попытке использования библиотеки (в конфигурации debug) ошибка - "QWidget: Must construct a QApplication before a QWidget".
Однако при конфигурации release - все отлично Улыбающийся

Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #7 : Май 26, 2014, 08:57 »

Только теперь такая же история, при попытке использования библиотеки (в конфигурации debug) ошибка - "QWidget: Must construct a QApplication before a QWidget".
Однако при конфигурации release - все отлично Улыбающийся
Это, скорее всего, происходит из-за того, что вы начинаете создавать элементы GUI до создания объекта QApplication.
Вначале нужно создать этот объект.
Записан
Simpleton
Гость
« Ответ #8 : Май 26, 2014, 09:04 »

Это получается такая особенность этой библиотеки?
А как мне тогда быть, если я хочу воспользоваться ею статически Грустный
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #9 : Май 26, 2014, 10:30 »

Это получается такая особенность этой библиотеки?
А как мне тогда быть, если я хочу воспользоваться ею статически Грустный
Нет никакой разницы: статически/динамически.
В main самой первой строкой создавайте экземпляр QApplication:
Код
C++ (Qt)
int main( int argc, char *argv[] )
{
   QApplication app( argc, argv );
 
   // Дальше все остальное
   ...
}
 
Записан
Simpleton
Гость
« Ответ #10 : Май 26, 2014, 11:07 »

Вы не поверите, но я именно так и делал Улыбающийся
Записан
lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


Просмотр профиля WWW
« Ответ #11 : Май 26, 2014, 17:40 »

Для корректной работы дебаг/релиз приложения, необходимо и достаточно линковать свое приложение с соответствующими (дебаг/релиз) библиотеками

Код:
    CONFIG(debug, debug|release):LIBS += -lqscintilla2d
    else:                        LIBS += -lqscintilla2
Записан

Simpleton
Гость
« Ответ #12 : Май 26, 2014, 22:47 »

Благодарю!
Попробую на деле.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.068 секунд. Запросов: 23.