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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Конфликт хидеров при компиляции плагина mysql  (Прочитано 9145 раз)
cresta
Гость
« : Март 04, 2009, 17:00 »

При компиляции плагина mysql конфликтуют хидер mysql_com.h и виндовый winsock.h
В обоих хидерах есть тип данных SOCKET, но определены они по разному.

c:\qt\4.4.3\src\plugins\sqldrivers\mysql\mysql_headers\mysql_com.h(175) : error C2371: SOCKET: переопределение; различные базовые типы

C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winsock.h(54): см. объявление 'SOCKET'

Для чего тут винсок выскочил? Может его как-то отключить? Мне кажется для компиляции плагина он абсолютно не нужен.
Есть ли какие ключи для nmake, которые позволяют отключать ту или иную либу из процесса компиляции?
Записан
ритт
Гость
« Ответ #1 : Март 04, 2009, 17:49 »

c:\qt\4.4.3\src\plugins\sqldrivers\mysql\mysql_headers ?
Записан
cresta
Гость
« Ответ #2 : Март 04, 2009, 19:29 »

Это я туда положил хидеры.
Сами они нормальные, я ими не раз пользовался. В частности делал класс-обертку для mysql

Записан
ритт
Гость
« Ответ #3 : Март 04, 2009, 20:14 »

а кутэ собирается с ключём -direct3d?
Записан
cresta
Гость
« Ответ #4 : Март 04, 2009, 22:21 »

нет.
Никаких ключей не задано в явном виде, при конфигурировании видно в выводе, что поддержка direct3d не включена
Записан
ритт
Гость
« Ответ #5 : Март 04, 2009, 22:36 »

мб тогда убрать Microsoft SDKs из путей?
Записан
cresta
Гость
« Ответ #6 : Март 05, 2009, 11:40 »

в путях sdk не оговаривается.

скачал новый пакет mysql, с ним плагин собрался. Правда непонятно, почему плагин называется qsqlmysqld4.lib?
версия mysql была скачана пятая, а не четвертая. Это вообще принципиально или нет?

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

Сообщений: 2901



Просмотр профиля WWW
« Ответ #7 : Март 05, 2009, 11:42 »

скачал новый пакет mysql, с ним плагин собрался. Правда непонятно, почему плагин называется qsqlmysqld4.lib?
версия mysql была скачана пятая, а не четвертая. Это вообще принципиально или нет?

4 - это мажорная версия Qt и это не принципиально
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
cresta
Гость
« Ответ #8 : Март 05, 2009, 11:53 »

Все понял, спасибо
Записан
cresta
Гость
« Ответ #9 : Март 05, 2009, 16:39 »

Это какое-то болото Грустный

Вроде все было нормально, но не работал у меня qDebug.
Почитал форум и по советам решил пересобрать qt с ключом -debug-and-release

Вот все параметры конфигуратора:

configure -debug-and-release -static -no-phonon -no-phonon-backend -no-qt3support -no-opengl -arch windows -platform win32-msvc2008

Собралось, затем начал опять плагин mysql компилировать. Компиляция закончилась без ошибок.
Пошел проверять проект, который работал до пересборки qt - не компилируется: не находит файл c:\Qt\4.4.3\lib\QtSql4.lib
Файла qsqlmysqld4.lib который был до пересборки, тоже нет.
И qt не работает, и два часа компиляции коту под хвост Грустный

Что за ерунда такая? В чем проблема?

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

Сообщений: 3880


Просмотр профиля WWW
« Ответ #10 : Март 05, 2009, 17:47 »

перед новой конфигурацией, делал команду:
make confclean
 или нет??
Записан

Юра.
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #11 : Март 05, 2009, 17:49 »

да изачем тебе в статике отладка, держи две сборки Qt, одна - static/release, вторая - shared/dabug_and_release
Записан

Юра.
cresta
Гость
« Ответ #12 : Март 05, 2009, 18:26 »

nmake confclean делал
после этого опять сконфигурировал и собрал с такими ключами:

>configure -debug -no-phonon -no-phonon-backend -no-opengl -no-sql-sqlite -arch windows -platform win32-msvc2008
>nmake sub-src

после опять собрал плагин mysql

Теперь ситуация такая: мой тестовый проект из студии не собирается. По прежнему пишет, что отсутствует файл c:\Qt\4.4.3\lib\QtSql4.lib

Из командной строки собирается только debug-версия, но qDebug по-прежнему не работает. Вывода от qDebug в консоль нет. Release не собирается вообще.

Запутался уже в этих ключах Грустный

Как сделать, чтобы qDebug работал? Пусть будет shared, ничего страшного.

Что значит две сборки? Создавать две директории с сорцами qt и два раза компилировать либы? И проекты создавать в двух экземплярах (дебаг/релиз)? И для каждого вида проектов устанавливать свои переменные среды при компиляции? Или что?


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

Сообщений: 3880


Просмотр профиля WWW
« Ответ #13 : Март 05, 2009, 20:13 »

>>Что значит две сборки? Создавать две директории с сорцами qt и два раза компилировать либы? И проекты создавать в двух экземплярах (дебаг/релиз)? И для каждого вида проектов устанавливать свои переменные среды при компиляции? Или что?

Да
Записан

Юра.
cresta
Гость
« Ответ #14 : Март 05, 2009, 20:33 »

Охренеть, это ж сколько места надо будет на винте? Шокированный
Дебаг занимает 14 Гигов
Релиз около 5 Гб.

Ну ладно, бог с ним, пусть будет 19 гигов, а как сделать так, чтобы qDebug работал? Ключ -debug никак не помогает Грустный
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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