Qt проблеммы компиляции

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

S0V
Сообщения: 9
ОС: Mandriva 2008

Qt проблеммы компиляции

Сообщение S0V »

Привет, решил так как перелазию потихоньку на линь изучить QT. Раньше писал только в Delphi да Bilder. Нашел значит учебничек и начал с простого, но сразу напоролся на грабли.

hello.cpp

#include <qapplication.h>
#include <qpushbutton.h>

int main(int arc, char **argv)
{
QApplication a(argc, argv);
QPushButton hello( "Hello world!",0);

hello.resize(100,30);
a.setMainWidget(&hello);

hello.show();
return a.exec();
}

hello.pro


TEMPLATE = app

CONFIG += qt warn_on release

HEADERS =

SOURGES = hello.cpp

TARGET = hello

выполняю qmake получаем Makefile

Код:

####################################################################### ###### # Makefile for building: hello # Generated by qmake (1.07a) (Qt 3.3.6) on: Wed May 23 12:37:50 2007 # Project: hello.pro # Template: app # Command: $(QMAKE) -o Makefile hello.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$(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 = OBJECTS = FORMS = UICDECLS = UICIMPLS = SRCMOC = OBJMOC = DIST = hello.pro QMAKE_TARGET = hello DESTDIR = TARGET = hello 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: hello.pro /usr/lib/qt3/mkspecs/default/qmake.conf /usr/lib/qt3/lib/libqt-mt.prl $(QMAKE) -o Makefile hello.pro qmake: @$(QMAKE) -o Makefile hello.pro dist: @mkdir -p .tmp/hello && $(COPY_FILE) --parents $(SOURCES) $(HEADERS) $(FORMS) $(DIST) .tmp/hello/ && ( cd `dirname .tmp/hello` && $(TAR) hello.tar hello && $(GZIP) hello.tar ) && $(MOVE) `dirname .tmp/hello`/hello.tar.gz . && $(DEL_FILE) -r .tmp/hello mocclean: uiclean: yaccclean: lexclean: clean: -$(DEL_FILE) *~ core *.core ####### Sub-libraries distclean: clean -$(DEL_FILE) $(TARGET) $(TARGET) FORCE: ####### Compile ####### Install install: uninstall:


выполняю make и вижу:

$ make
g++ -o hello -L/usr/lib/qt3//lib -L/usr/lib -lqt-mt -lXext -lX11 -lm
/usr/lib/gcc/i586-mandriva-linux-gnu/4.1.1/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status
make: *** [hello] Ошибка 1

просьба непинать а говорить по существу, google и yandex измучил уже как мог. ОС Mandriva 2007.
Спасибо сказали:
Abaddon
Сообщения: 81
ОС: Gentoo 2006.1.x86_64

Re: Qt проблеммы компиляции

Сообщение Abaddon »

S0V писал(а):
23.05.2007 08:17
Привет, решил так как перелазию потихоньку на линь изучить QT. Раньше писал только в Delphi да Bilder. Нашел значит учебничек и начал с простого, но сразу напоролся на грабли.

hello.pro
TEMPLATE = app
CONFIG += qt warn_on release
HEADERS =
SOURGES = hello.cpp
TARGET = hello

SOURGES = hello.cpp
меняем на:
SOURCES = hello.cpp
После успешного создания мэйка будет еще одна ошибка:), но уже в коде.
Вообще говоря, qmake создает вполне неплохой Makefile, который легко читается, и обнаруживается, что исходников ты и не компилиш.
Да и вывод gcc о том-же говорит...
Base: Gentoo 2006.1.x86_64 on AMD64_X2-5200+/1024Mb/7300GS-256Mb/250Gb
Serv: Gentoo 2006.1.x86_32 on iCeleron-2.4/1024Mb/Geforce2MX400-64Mb/250Gb+60Gb
Note: Gentoo 2006.1.x86_32 on Transmeta-8800(Efficeon)/512Mb/(Trident-???)/40Gb
Gate: Gentoo 2005.1.x86_32 on AMD-K6.2-500/64Mb/forgot.../3.2Gb+6.4Gb+40Gb
Спасибо сказали:
TwisT
Сообщения: 265
ОС: Debian

Re: Qt проблеммы компиляции

Сообщение TwisT »

а не проще собирать так:

Код: Выделить всё

qmake -project
qmake
make

все дедается в каталоге с проектом
Linux user #432536.
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.

Re: Qt проблеммы компиляции

Сообщение eduard_pustobaev »

TwisT писал(а):
23.05.2007 11:40
а не проще собирать так?

Полюбому проще. Особенно hello_world'ы. :)
В дисгармонии со вселенной.
Спасибо сказали:
S0V
Сообщения: 9
ОС: Mandriva 2008

Re: Qt проблеммы компиляции

Сообщение S0V »

Всем спасибо, разобрался. Надо же было такую панику поднять :(
Спасибо сказали: