Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Playmaker от Апрель 14, 2009, 18:37



Название: Странная ошибка
Отправлено: Playmaker от Апрель 14, 2009, 18:37
Есть библиотека (myLib.so для работы с сетью, подключаю статически), есть её заголовочные файлы. Создаю простейший проект: форма, на ней кнопка (на неё вешаю функцию из библиотеки). Запускаю, всё работает.
Есть средний по размерам проект, в котором мне нужно использовать функции из библиотеки. Подключаю в pro-файле эту библиотеку, указываю INCLUDEPATH, пишу в одном из файлов (netmodule.cpp) #include "myLib.h", вообщем делаю всё так же, как в простейшем примере. Компилирую, вылезают 9 предупреждений и 2 ошибки. На память не помню, но что-то типа того:
..................................................
...from netmodule.cpp h:12 (строка #include "myLib.h")
...from myLib.h h:3 (строка  #include <QTcpSocket>)
...from QTcpSocket h:1(строка #include "qtcpsocket.h")
...from qtcpsocket.h h:3 .............
...from qabstractsocket.h ............
...from qdebug.h.........................
...from qhash.h...........................
В итоге эти 2 ошибки в каком-то template файла qhash.h ???
С подобным в QT я ещё не сталкивался...
В чём моя ошибка? >:(


Название: Re: Странная ошибка
Отправлено: spirit от Апрель 14, 2009, 18:58
а QT += network присутствует в про-файле проекта?


Название: Re: Странная ошибка
Отправлено: Playmaker от Апрель 15, 2009, 17:35
Да, присутствует.

Если написать #include "myLib.h" в mainwindow.h или mainwindow.cpp, т.е. в главном модуле приложения, то всё компилит.
Правда, я не пробовал использовать функции из этой библиотеки (переделывать много надо), но думаю всё работало бы.

Пробывал добавить #include "myLib.h" в ещё один файл, ошибок стало чуть больше. И они уже не в qhash.h, а в qobjectdefs.h.

Самое последнее предупреждение: confused by earliers errors, bailing out

Вот такие дела... :-\


Название: Re: Странная ошибка
Отправлено: pastor от Апрель 15, 2009, 17:38
Покажи код, где включается #include "myLib.h"


Название: Re: Странная ошибка
Отправлено: Playmaker от Апрель 25, 2009, 10:36
В общем, дело походу было в следующем.
1)Структура моего (точнее он не мой, мне придется с ним поработать) проекта была просто ужасной. Некоторые  h-файлы подключены туда, где они не используются, пару файлов взаимно включали друг друга. Всё это я переделал.
2)В заголовочном файле подключаемой библиотеки не было директив препроцессора
#ifndef  MYLIB_H
#define MYLIB_H
.............................
#endif
Добавил. Запустил. Ура, всё работает! :D

P.S. Мож и не в этом были причины ошибок... :(