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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Странная ошибка  (Прочитано 3473 раз)
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 я ещё не сталкивался...
В чём моя ошибка? Злой
Записан
spirit
Гость
« Ответ #1 : Апрель 14, 2009, 18:58 »

а QT += network присутствует в про-файле проекта?
Записан
Playmaker
Гость
« Ответ #2 : Апрель 15, 2009, 17:35 »

Да, присутствует.

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

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

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

Вот такие дела... В замешательстве
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Апрель 15, 2009, 17:38 »

Покажи код, где включается #include "myLib.h"
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Playmaker
Гость
« Ответ #4 : Апрель 25, 2009, 10:36 »

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

P.S. Мож и не в этом были причины ошибок... Грустный
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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