Название: Странная ошибка Отправлено: 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. Мож и не в этом были причины ошибок... :( |