Решено: QT4 Mandriva 2008 (error: QApplication: Нет такого файла или каталога)

Модератор: Модераторы разделов

Аватара пользователя
destroyer86
Сообщения: 16
ОС: Gentoo

Решено: QT4 Mandriva 2008

Сообщение destroyer86 »

Поставил пакеты
libqt4-devel
lsb-qt4
qt4-common
qt4-qtdbus
написал код

Код:

#include<QApplication> #include<QLabel> int main(int argc, char **argv) { QApplication app(argc, argv); QLabel *label = new QLabel("Hello QT!"); label->show(); return app.exec(); }

Затем выполнил команды:
qmake -project
qmake QT.pro
make
Выпадает следующее:

Код:

g++ -c -pipe -Wall -W -O2 -DQT_NO_DEBUG -DQT_SHARED -DQT_THREAD_SUPPORT -I/usr/lib/qt3/mkspecs/default -I. -I. -I/usr/lib/qt3//include -o qt1.o qt1.cpp qt1.cpp:1:23: error: QApplication: Нет такого файла или каталога qt1.cpp:2:18: error: QLabel: Нет такого файла или каталога qt1.cpp:9:2: warning: no newline at end of file qt1.cpp: In function ‘int main(int, char**)’: qt1.cpp:5: ошибка: нет декларации ‘QApplication’ в этой области видимости qt1.cpp:5: ошибка: expected `;' before ‘app’ qt1.cpp:6: ошибка: нет декларации ‘QLabel’ в этой области видимости qt1.cpp:6: ошибка: нет декларации ‘label’ в этой области видимости qt1.cpp:6: ошибка: expected type-specifier before ‘QLabel’ qt1.cpp:6: ошибка: expected `;' before ‘QLabel’ qt1.cpp:8: ошибка: нет декларации ‘app’ в этой области видимости qt1.cpp: At global scope: qt1.cpp:3: предупреждение: unused parameter ‘argc’ qt1.cpp:3: предупреждение: unused parameter ‘argv’ make: *** [qt1.o] Ошибка 1

Читал похожие темы, по поводу вместо qmake писать qmake-qt4, не получилось пишет что не знает такой команды
Как я понимаю, qmake у меня от qt3 остался понял я из :

Код:

####################################################################### ###### # Makefile for building: QT # Generated by qmake (1.07a) (Qt 3.3.8) on: Sat May 23 00:07:08 2009 # Project: QT.pro # Template: app # Command: $(QMAKE) -o Makefile QT.pro ############################################################################# ####### Compiler, tools and options CC = gcc CXX = g++ LEX = flex YACC = yacc CFLAGS = -pipe -Wall -W -O2 -DQT_NO_DEBUG -DQT_SHARED -DQT_THREAD_SUPPORT CXXFLAGS = -pipe -Wall -W -O2 -DQT_NO_DEBUG -DQT_SHARED -DQT_THREAD_SUPPORT LEXFLAGS = YACCFLAGS= -d INCPATH = -I/usr/lib/qt3/mkspecs/default -I. -I. -I$(QTDIR)/include LINK = g++ LFLAGS = LIBS = $(SUBLIBS) -L$(QTDIR)/lib -L/usr/lib -lqt-mt -lXext -lX11 -lm AR = ar cqs RANLIB = MOC = $(QTDIR)/bin/moc UIC = $(QTDIR)/bin/uic QMAKE = qmake TAR = tar -cf GZIP = gzip -9f COPY = cp -f COPY_FILE= $(COPY) COPY_DIR = $(COPY) -r INSTALL_FILE= $(COPY_FILE) INSTALL_DIR = $(COPY_DIR) DEL_FILE = rm -f SYMLINK = ln -sf DEL_DIR = rmdir MOVE = mv -f CHK_DIR_EXISTS= test -d MKDIR = mkdir -p ####### Output directory OBJECTS_DIR = ./ ####### Files HEADERS = SOURCES = qt1.cpp OBJECTS = qt1.o FORMS = UICDECLS = UICIMPLS = SRCMOC = OBJMOC = DIST = QT.pro QMAKE_TARGET = QT DESTDIR = TARGET = QT first: all ####### Implicit rules .SUFFIXES: .c .o .cpp .cc .cxx .C .cpp.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< .cc.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< .cxx.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< .C.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< .c.o: $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $< ####### Build rules all: Makefile $(TARGET) $(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(OBJCOMP) $(LIBS) mocables: $(SRCMOC) uicables: $(UICDECLS) $(UICIMPLS) $(MOC): ( cd $(QTDIR)/src/moc && $(MAKE) ) Makefile: QT.pro /usr/lib/qt3/mkspecs/default/qmake.conf /usr/lib/qt3/lib/libqt-mt.prl $(QMAKE) -o Makefile QT.pro qmake: @$(QMAKE) -o Makefile QT.pro dist: @mkdir -p .tmp/QT && $(COPY_FILE) --parents $(SOURCES) $(HEADERS) $(FORMS) $(DIST) .tmp/QT/ && ( cd `dirname .tmp/QT` && $(TAR) QT.tar QT && $(GZIP) QT.tar ) && $(MOVE) `dirname .tmp/QT`/QT.tar.gz . && $(DEL_FILE) -r .tmp/QT mocclean: uiclean: yaccclean: lexclean: clean: -$(DEL_FILE) $(OBJECTS) -$(DEL_FILE) *~ core *.core ####### Sub-libraries distclean: clean -$(DEL_FILE) $(TARGET) $(TARGET) FORCE: ####### Compile qt1.o: qt1.cpp ####### Install install: uninstall:

там везде стоит qt3
Спасибо сказали:
Аватара пользователя
SergeyIT
Сообщения: 82
ОС: xUbuntu, MXlinux

Re: Решено: QT4 Mandriva 2008

Сообщение SergeyIT »

А не проще QT Develop поставить и не мучаться?
Извините, я все еще учусь
Спасибо сказали:
Аватара пользователя
destroyer86
Сообщения: 16
ОС: Gentoo

Re: Решено: QT4 Mandriva 2008

Сообщение destroyer86 »

Мне сначала нужно эту проблему решить. Зачем бросать на пол пути, кроме того если через консоль как надо не работает, то и Kdevelop врядли нормально работать будет.
Спасибо сказали:
Аватара пользователя
destroyer86
Сообщения: 16
ОС: Gentoo

Re: Решено: QT4 Mandriva 2008

Сообщение destroyer86 »

Вот решение проблемы

Код:

(23:37:00) DestroyER.86: А кстати я тут QT4 ставил, не могу разобраться вот QT4 Mandriva 2008, поможешь? (23:38:52) knzsoft: ты нашел где у тебя стоит Qt4? (23:39:08) knzsoft: /usr/lib/qt4/ например (23:39:19) knzsoft: есть такое? (23:40:04) knzsoft: там далее есть каталог include c файлами QApplication QLabel и пр.? (23:41:34) DestroyER.86: Нет этих каталогов (23:41:54) knzsoft: Значит и qt4 нет :) (23:43:59) DestroyER.86: ibqt4-devel lsb-qt4 qt4-common qt4-qtdbus А я вот эти пакеты поставил это разве не QT4 (23:45:24) knzsoft: посмотри что в них. В каждом дистрибутиве пакеты называются по разному. Я даже не пытаюсь запоминать названия. Надо просто смотреть содержимое. (23:46:07) DestroyER.86: Qt/ QtCore/ QtGui/ QtScript/ QtTest/ Qt3Support/ QtDBus/ QtNetwork/ QtSql/ QtUiTools/ QtAssistant/ QtDesigner/ QtOpenGL/ QtSvg/ QtXml/ Ну папке include есть вот эти папки (23:47:52) knzsoft: а папка bin есть с qmake? (23:48:13) DestroyER.86: Да (23:48:13) knzsoft: что дает команда which qmake? (23:48:34) knzsoft: уверен, что она тебе показывает каталог с третим qt (23:49:04) DestroyER.86: (23:48:13) knzsoft: что дает команда which qmake? /usr/bin/qmake (23:51:35) knzsoft: посмотри ls -l `which qmake` может быть это символьная ссылка? (23:52:05) DestroyER.86: ../../usr/lib/qt3/bin/qmake (23:52:23) DestroyER.86: Как я и предпологал он использует qt3 qmake (23:52:25) knzsoft: вот и ответ на твои вопросы :) (23:53:04) DestroyER.86: Т.е. ссылку поменять на qt4 (23:53:12) DestroyER.86: qmake (23:54:44) knzsoft: да, поменять стоит (23:54:58) knzsoft: если все остальное стоит, то должно начать работать

Ну соответственно я перешел в каталог /usr/bin удалил старую ссылку и написал в командной строке ln -s ../../usr/lib/qt4/bin/qmake qmake
Спасибо сказали: