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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Qt-4.2.0 Linux FC6 ]вообще нопонятка с компиляцией  (Прочитано 10622 раз)
izoomer
Гость
« : Июль 11, 2007, 17:07 »

Есть такие заголовочные файлы

JCachRegister.h

Код:


#ifndef JCASHREGISTER_H
#define JCASHREGISTER_H

#include <QWidget>
#include <math.h>
#include <QDebug>
#include <QFont>
#include <QPainter>
#include <QLabel>
#include "JConfigModel.h"
#include "JDeviceDispatcher.h"

...
...
...


JMPEGWidget.h

Код:

#ifndef JMPEGWIDGET_H
#define JMPEGWIDGET_H

#include <QWidget>
#include <QMouseEvent>
extern "C" {
    #include "Xine.h"
}

...
...
...


JDeviceDispatcher.h

Код:

#ifndef JDEVICEDISPATCHER_H
#define JDEVICEDISPATCHER_H

#include <QStack>
#include <QDomDocument>
#include <QBitArray>

#include "usbDevice.h"
#include "JCashRegister.h"
#include "JBaner.h"
#include "JPlayer.h"
#include "JDialog.h"
#include "JConfigModel.h"



И собственно сам файл виновник

JPlayer.h

Код:

#ifndef JPLAYER_H
#define JPLAYER_H

#include <QWidget>
#include <QVariant>
#include <QPushButton>
#include <QModelIndex>
#include <QFileInfo>
#include <QAbstractItemModel>
#include <QStandardItem>
#include <QStandardItemModel>
#include <QList>
#include <QLabel>
#include <QPair>
#include <QDomDocument>
//#include "JMPEGWidget.h"
#include "JDeviceDispatcher.h"
#include "player.h"
#include "fileinfo_met.h"



Если строка #include "JMPEGWidget.h" закоментирована то компилится бенз проблем, если раскоментировать то вылазят такие вот вещи

Код:

/usr/local/Trolltech/Qt-4.2.0/include/QtGui/qstyleoption.h:114: error: expected identifier before numeric constant
/usr/local/Trolltech/Qt-4.2.0/include/QtGui/qstyleoption.h:114: error: expected identifier before numeric constant
/usr/local/Trolltech/Qt-4.2.0/include/QtGui/qstyleoption.h:114: error: expected `}' before numeric constant
/usr/local/Trolltech/Qt-4.2.0/include/QtGui/qstyleoption.h:114: error: expected unqualified-id before numeric constant
/usr/local/Trolltech/Qt-4.2.0/include/QtGui/qstyleoption.h:117: error: ‘FrameFeature’ was not declared in this scope
/usr/local/Trolltech/Qt-4.2.0/include/QtGui/qstyleoption.h:117: error: template argument 1 is invalid
/usr/local/Trolltech/Qt-4.2.0/include/QtGui/qstyleoption.h:117: error: invalid type in declaration before ‘;’ token
/usr/local/Trolltech/Qt-4.2.0/include/QtGui/qstyleoption.h:120: error: expected unqualified-id before ‘)’ token
/usr/local/Trolltech/Qt-4.2.0/include/QtGui/qstyleoption.h:121: error: expected unqualified-id before ‘const’
/usr/local/Trolltech/Qt-4.2.0/include/QtGui/qstyleoption.h:121: error: expected `)' before ‘const’
/usr/local/Trolltech/Qt-4.2.0/include/QtGui/qstyleoption.h:122: error: expected unqualified-id before ‘const’
/usr/local/Trolltech/Qt-4.2.0/include/QtGui/qstyleoption.h:122: error: expected `)' before ‘const’
/usr/local/Trolltech/Qt-4.2.0/include/QtGui/qstyleoption.h:123: error: ‘QStyleOptionFrameV2& operator=(const QStyleOptionFrame&)’ must be a nonstatic member function
/usr/local/Trolltech/Qt-4.2.0/include/QtGui/qstyleoption.h:125: error: expected unqualified-id before ‘protected’
/usr/local/Trolltech/Qt-4.2.0/include/QtGui/qstyleoption.h:127: error: expected declaration before ‘}’ token


ОТКУДА ТАКОЕ МОЖЕТ БЫТЬ !!!??? Я уже заманался чиать изучать ... не пойму ... подскажите кто знает.
Записан
Sergeich
Гость
« Ответ #1 : Июль 11, 2007, 17:53 »

Косяк в файле "JMPEGWidget.h", скорей всего в конце определения класса после закрывающейся фигурной скобки нет точки с запятой.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #2 : Июль 11, 2007, 18:02 »

2 Sergeich: Не факт!

2 izoomer: попробуй поиграться с перестановкой ашников местами. Допустим JMPEGWidget.h поставить после JDeviceDispatcher.h в самый низ.

ЗЫ: Я наблюдал похожие проблемы в связке Qt + Motif, когда ашникик мотифа подключались перед Qt'шными.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
izoomer
Гость
« Ответ #3 : Июль 11, 2007, 22:31 »

Если вставлять #include "JMPEGWidget.h" в другом файле кроме JPlayer.h то все проходит на УРА! .... то есть компилится ... а вот если именно в JPlaer.h включаем то ошибка ....

добавлено спустя 2 минуты:

 
Цитата: "Sergeich"
Косяк в файле "JMPEGWidget.h", скорей всего в конце определения класса после закрывающейся фигурной скобки нет точки с запятой.

естьтам точка с запяой ... в том то и прикол

добавлено спустя 8 минут:

 пробовал вставлять после каждого ашника в JPlayer.h таже ошибка ... хотя и ошибкой трудно назвать ... глюк скорее всего ... а как побороть не знаю ... вот ведь бывает ...

добавлено спустя 5 минут:

 причем ругается то при компиляци JCashRegister.cpp .... то есть если в любом месте JPlayer.h вставить #include"JMPEGWi7dget.h" То при компилиции ругается на JCashRegister.h .... ну не странно ли ... ?

добавлено спустя 2 минуты:

 ПОМОГИТЕ !!!!!
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #4 : Июль 11, 2007, 22:58 »

вот это что такое?

extern "C" {
    #include "Xine.h"
}
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
vaprele07
Гость
« Ответ #5 : Июль 12, 2007, 06:02 »

Вот так делать не хорошо:
JCachRegister.h
...
#include "JDeviceDispatcher.h"

JDeviceDispatcher.h
...
#include "JCashRegister.h"

если нужно что то с JDeviceDispatcher.h то делай это в таком виде:

JCachRegister.h
...
class JDeviceDispatcher;

JCachRegister.cpp

#include JCachRegister.h
#include JDeviceDispatcher.h

Цитата: "Racheengel"
вот это что такое?

extern "C" {
    #include "Xine.h"
}


а это? :roll:

extern "Pascal" {}
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #6 : Июль 12, 2007, 09:22 »

я к тому, что может там надо ; в конец поставить?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Steven_Orko
Гость
« Ответ #7 : Июль 12, 2007, 09:23 »

Цитата: "Racheengel"
вот это что такое?

extern "C" {
    #include "Xine.h"
}


Грубо говоря, это запрещает g++ уродовать названия функций, добавляя к этому названию зашифрованную сигнатуру, т.е. компилятор оставляет имя функции, как оно есть. Зачем это здесь, не ясно. Обычно используется при написании библиотек shared library на C++ для C++ или C.
Записан
kitov
Гость
« Ответ #8 : Июль 12, 2007, 10:13 »

попробуй кутешные хедеры в самом конце заинклюдить .
Записан
izoomer
Гость
« Ответ #9 : Июль 12, 2007, 11:42 »

Цитата: "vaprele07"

если нужно что то с JDeviceDispatcher.h то делай это в таком виде:

JCachRegister.h
...
class JDeviceDispatcher;

JCachRegister.cpp

#include JCachRegister.h
#include JDeviceDispatcher.h


Спасибо. Так работает .... надо бы мне азы С++ почитать
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #10 : Июль 12, 2007, 22:19 »

тут не в С++ дело, а в компиляторе.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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