Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Daniel o rei

[Resolvido] main

Recommended Posts

Tenho esse script que achei em: http://eliteinvaders.forumbrasil.net/t8-tutorial-interface-grafica-gui-c-c

dei o nome de win.cpp

#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, "CHEGA DE HELL WORLD!", "MENSAGEM", MB_OK);
return 0;



}

 

Na linha de comando

 

C:\Borland\BCC55\Bin>bcc32 win.cpp

Borland C++ 5.5.1 for Win32 Copyright © 1993, 2000 Borland

win.cpp:

Warning W8057 win.cpp 10: Parameter 'hInstance' is never used in function __stdc

all WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int)

Warning W8057 win.cpp 10: Parameter 'hPrevInstance' is never used in function __

stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int)

Warning W8057 win.cpp 10: Parameter 'lpCmdLine' is never used in function __stdc

all WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int)

Warning W8057 win.cpp 10: Parameter 'nCmdShow' is never used in function __stdca

ll WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int)

Turbo Incremental Link 5.00 Copyright © 1997, 2000 Borland

Error: Unresolved external '_main' referenced from C:\BORLAND\BCC55\LIB\C0X32.OB

J

 

C:\Borland\BCC55\Bin>

 

 

 

Da esses erros e cria arquivos obj e tds.

 

Estou usando o borland c++ compiler.

 

 

Creio que não deve ser um problema muito complicado já que se trada de um hello world(ou "CHEGA DE HELL WORLD!" como ta no script)

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
       LPSTR lpCmdLine, int nCmdShow)
{
       MessageBox(NULL, "CHEGA DE HELL WORLD!", "MENSAGEM", MB_OK);
       return 0;
}

 

O problema é que o compilador não deixa compilar se você deixou algum parâmetro sem usar.

 

Uma dica: eu não aprenderia a API da win32 a não ser que fosse estritamente necessário. Ferramentas como o Qt são muito melhores, pois são mais fáceis de usar e portáveis. Portabilidade é tudo hoje em dia.

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
       LPSTR lpCmdLine, int nCmdShow)
{
       MessageBox(NULL, "CHEGA DE HELL WORLD!", "MENSAGEM", MB_OK);
       return 0;
}

 

O problema é que o compilador não deixa compilar se você deixou algum parâmetro sem usar.

 

Uma dica: eu não aprenderia a API da win32 a não ser que fosse estritamente necessário. Ferramentas como o Qt são muito melhores, pois são mais fáceis de usar e portáveis. Portabilidade é tudo hoje em dia.

 

 

Abraços :D

 

Eu compilei assm e deu erro

 

C:\Borland\BCC55\Bin>bcc32 -tW win.cpp

Borland C++ 5.5.1 for Win32 Copyright © 1993, 2000 Borland

win.cpp:

Turbo Incremental Link 5.00 Copyright © 1997, 2000 Borland

Error: Unresolved external 'WinMain' referenced from C:\BORLAND\BCC55\LIB\C0W32.

OBJ

 

 

 

Desculpe perguntar mas como funciona essas ferramentas como qt?

 

Aonde fica o script?

 

Eu pencei em usar o gtk que parece que funciona no linux tambem.

 

Usando gtk ou o qt eu posso criar um servidor de socket de forma parecida com um execultado no console?

 

Obrigado por responder

 

 

EDIT: estou baixando o qt http://www.baixaki.com.br/site/dwnld45653.htm

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

O GTK+ é similar ao Qt: é um framework de desenvolvimento portável. Ele abrange desde threads e networking portáveis até criação de GUI's de um modo muito mais fácil e portável. O GTK+ abrange só a parte de GUI, o Qt é muito mais.

 

Aqui, baixe o Qt daqui:

 

http://qt.nokia.com/ <-- Site Oficial

http://qt.nokia.com/downloads <-- Página de download

 

Eu sugiro que baixe o SDK, ele é maior quando instalado mas tem tudo o que vai precisar. Quando já estiver acostumado com ele, comece a utilizar as distribuições separadas (só das libraries), pois você vai apenas precisar delas para compilar...

 

Mas usar o SDK para aprender ajuda muito, lembre-se sempre disso.

 

Em matéria de UI, ele permite desenvolvimento visual, como o Visual Studio, tem uma IDE própria, permite o uso de scripts exclusivamente para a UI e ainda por cima permite um desenvolvimento em C++ MUITO mais simples de usar do que seus concorrentes (especialmente a API do Windows) e ainda completamente OO. O GTK+ é escrito em C, enquanto o Qt é escrito em C++, por isso é ainda mais fácil usar ele. Com essa vantagem, seus programas tem o visual nativo do sistema operacional em que está rodando, sem você precisar modificar uma linha de código ou recompilação.

 

 

Você vai ser capaz de escrever programas MUITO mais portáveis com ele, e ainda sem muita perda de desempenho, pois o Qt utiliza as API's nativas do SO em que roda. Por exemplo, ele usa a Windows API quando está no Windows, e o X11 Window System quando está no linux. Assim, você tem todo o desempenho das API's nativas mas com muito mais portabilidade e facilidade de uso. Além disso, você já tem uma biblioteca gigante com muitas coisas a mais que vão te ajudar muito. Por exemplo, mexer com sockets no Qt é completamente portável e muito mais fácil que usando a winsock2 ou a sys/socket.h. Dê uma olhada abaixo:

 

http://developer.qt.nokia.com/doc/qt-4.8/qt-network.html (acesse a parte "Network Programming" - terá classes que funcionam desde clientes FTP/HTTP/SSL completos até bibliotecas de Sockets, é muito completo e, o melhor de tudo, portável).

 

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

O GTK+ é similar ao Qt: é um framework de desenvolvimento portável. Ele abrange desde threads e networking portáveis até criação de GUI's de um modo muito mais fácil e portável. O GTK+ abrange só a parte de GUI, o Qt é muito mais.

 

Aqui, baixe o Qt daqui:

 

http://qt.nokia.com/ <-- Site Oficial

http://qt.nokia.com/downloads <-- Página de download

 

Eu sugiro que baixe o SDK, ele é maior quando instalado mas tem tudo o que vai precisar. Quando já estiver acostumado com ele, comece a utilizar as distribuições separadas (só das libraries), pois você vai apenas precisar delas para compilar...

 

Mas usar o SDK para aprender ajuda muito, lembre-se sempre disso.

 

Em matéria de UI, ele permite desenvolvimento visual, como o Visual Studio, tem uma IDE própria, permite o uso de scripts exclusivamente para a UI e ainda por cima permite um desenvolvimento em C++ MUITO mais simples de usar do que seus concorrentes (especialmente a API do Windows) e ainda completamente OO. O GTK+ é escrito em C, enquanto o Qt é escrito em C++, por isso é ainda mais fácil usar ele. Com essa vantagem, seus programas tem o visual nativo do sistema operacional em que está rodando, sem você precisar modificar uma linha de código ou recompilação.

 

 

Você vai ser capaz de escrever programas MUITO mais portáveis com ele, e ainda sem muita perda de desempenho, pois o Qt utiliza as API's nativas do SO em que roda. Por exemplo, ele usa a Windows API quando está no Windows, e o X11 Window System quando está no linux. Assim, você tem todo o desempenho das API's nativas mas com muito mais portabilidade e facilidade de uso. Além disso, você já tem uma biblioteca gigante com muitas coisas a mais que vão te ajudar muito. Por exemplo, mexer com sockets no Qt é completamente portável e muito mais fácil que usando a winsock2 ou a sys/socket.h. Dê uma olhada abaixo:

 

http://developer.qt....qt-network.html (acesse a parte "Network Programming" - terá classes que funcionam desde clientes FTP/HTTP/SSL completos até bibliotecas de Sockets, é muito completo e, o melhor de tudo, portável).

 

 

 

Abraços :D

 

 

Eu baixei o

Qt libraries 4.8.0 for Windows (minGW 4.4, 354 MB)

Tem algum problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu instalei o qt, deu mais de um gb, mas eu não sei o que fazer...

 

 

Antes eu só criava um arquivo cpp no bloco de notas e compilava na linha de comando usando o bcc32

Agora não sei como é.

 

O ui parece que é no qt designer, agora onde é o código,

 

Eu acho que devia instalar o mingw primeiro,

 

Na instalação perguntou... mas eu não tinha, acho que vou desinstalar e instalar denovo.

 

edit: acho que eu devia ter instalado o qt creator, pelomenos para começar

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Qt creator vem instalado por padrão eu acho...

 

Então, é mais fácil se você utilizar o qmake, um utilitário para configuração de builds com o Qt que suporta vários compiladores...

 

Dê uma olhada sobre ele, mas se não to enganado, é algo asism para compilar:

 

qmake -project
qmake nome_da_pasta.pro
make nome_da_pasta

 

Sendo que o make pode ser nmake do VS, mingw32-make do MinGW, etc, dependendo da versão do Qt que instalou (para qual compilador)...

 

 

Você vai ter que aprender mais sobre sistemas de compilação, agora ou depois. Muita gente fala que não precisa aprender, que IDE's resolvem, mas compilação FAZ PARTE de C/C++, você tem que aprender a teoria e aprender a aplicá-la querendo ou não. Você verá que quando seus projetos ficarem maiores vão começar a aparecer bugs obscuros na compilação que você não sabe porque acontece. Vai descobrir que foi a IDE que configurou tudo errado.

 

Aprenda como utilizar compiladores na linha de comando, depois makefiles, e depois que já souber isso, parta para o autotools ou (muito melhor, pois suporta o Windows direito e muito mais compiladores, ou seja, é mais portável) o CMake, que é o que eu uso e recomendo muitíssimo.

 

 

 

Abraços :D

 

 

 

@edit:

 

Quanto a como usar o Qt, leia esse livro:

 

C++ GUI Programming with Qt4, 2nd.Edition

 

Ele vai te dar uma noção sobre como usar o Qt, te garanto que é MUITO mais fácil que usar a win32 API. E ele ainda oferece o Qt Designer, que é como o Visual Studio com as forms, só que muito mais poderoso e flexível... além de ser portável ^^

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

O qt não veio com o qt creator nem com o compilador,

 

 

o qt creator veio com o compilador.

 

Ai eu instalei o qt 4.8.0 e pediu o diretório do MinGW que estava na pasta do creator, tudo certo, instalei e tudo ok,

 

Só que agora eu quero compilar um helloworld.

 

Eu tentei compilar esse script que achei em:

http://www.dandomin.com.br/qt_primeiraapp.php

#include <QApplication>
#include <QLabel>

int main(int argc, char * argv[])
{
QApplication app(argc, argv);

QLabel textinho("Que mané Hello World oq!? Meu nome é Zé Pequeno!");
textinho.resize(400,80);
textinho.setAlignment(Qt::AlignCenter);
textinho.show();

app.exec();
}


salvei nos meus documentos

Eu coloquei as variaveis de ambiente para algumas pastas.

 

 

ai tentei compilar

Microsoft Windows XP [versão 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrador>cd meus documentos

C:\Documents and Settings\Administrador\Meus documentos>qmake -project

C:\Documents and Settings\Administrador\Meus documentos>qmake
QMAKESPEC has not been set, so configuration cannot be deduced.
Error processing project file: C:/Documents and Settings/Administrador/Meus docu
mentos/Meus documentos.pro

C:\Documents and Settings\Administrador\Meus documentos>make
make: no input files

C:\Documents and Settings\Administrador\Meus documentos>

 

Parece que tentou compilar Meus documentos.pro, não sei porque

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz assim:

 

mkdir build
copy NOME_DO_ARQUIVO_COM_A_SOURCE build
cd build
qmake -project
qmake build.pro
make

 

E sobre aquele hello world, ele usa técnicas ultrapassadas do Qt, você não deve especificar o tamanho da tela não, ele calcula isso para você. Tente isso:

 

#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();
}

 

E aí você pode ver como o Qt é simples com somente essa ridícula modificação:

 

#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
   QApplication app(argc, argv);
   QLabel *label = new QLabel("<h2><i>Hello</i> <font color=red>Qt!</font></h2>");
   label->show();
   return app.exec();
}

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Execultei isso no prompt de comando, criou a pasta build e copiou o arquivo main.cpp para a pasta.

 

Só que não funciona

 


C:\Documents and Settings\Administrador\Meus documentos\build>qmake -project

C:\Documents and Settings\Administrador\Meus documentos\build>qmake build.pro
QMAKESPEC has not been set, so configuration cannot be deduced.
Error processing project file: build.pro

C:\Documents and Settings\Administrador\Meus documentos\build>make
make: no input files

C:\Documents and Settings\Administrador\Meus documentos\build>

 

 

 

Eu já tentei de tudo mas da no mesmo.

C:\Documents and Settings\Administrador\Meus documentos\build>qmake -project -o
build.pro

C:\Documents and Settings\Administrador\Meus documentos\build>qmake
QMAKESPEC has not been set, so configuration cannot be deduced.
Error processing project file: C:/Documents and Settings/Administrador/Meus docu
mentos/build/build.pro

C:\Documents and Settings\Administrador\Meus documentos\build>make
make: no input files

C:\Documents and Settings\Administrador\Meus documentos\build>make
make: no input files

C:\Documents and Settings\Administrador\Meus documentos\build>qmake -project -o

C:\Documents and Settings\Administrador\Meus documentos\build>qmake
QMAKESPEC has not been set, so configuration cannot be deduced.
Error processing project file: C:/Documents and Settings/Administrador/Meus docu
mentos/build/build.pro

C:\Documents and Settings\Administrador\Meus documentos\build>qmake
QMAKESPEC has not been set, so configuration cannot be deduced.
Error processing project file: C:/Documents and Settings/Administrador/Meus docu
mentos/build/build.pro

 

 

 

%%%%%%%%%

Arquivo build.pro

 

######################################################################
# Automatically generated by qmake (2.01a) qua 8. fev 09:06:46 2012
######################################################################

TEMPLATE = app
TARGET = 
DEPENDPATH += .
INCLUDEPATH += .

# Input
SOURCES += main.cpp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você adicionou a variável de ambiente QMAKESPEC?

 

Acesse:

 

<Pasta_de_instalação_do_Qt>/mkspecs OU

<Pasta_de_instalação_do_Qt>/qmakespec

 

E configure a var de ambiente para seu compilador.

 

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu adicionei o caminho mkspecs só que não tinha execultavel nenhum, só pastas e um arquivo chamado qconfig.pri

 

Aqui os caminhos do PATH:

%Qt%\bin\;

C:\Qt\4.8.0\mingw\;

C:\Qt\qtcreator-2.4.1\mingw\bin\;

C:\Qt\4.8.0\qmake;

C:\Qt\4.8.0\mkspecs;

C:\Qt\4.8.0\mkspecs\default

 

 

 

qconfig.pri

CONFIG+= debug shared stl exceptions rtti mmx 3dnow sse sse2
QT_ARCH = windows
QT_EDITION = OpenSource
QT_CONFIG += release debug zlib png accessibility qt3support opengl s60 ipv6 script scripttools xmlpatterns multimedia audio-backend declarative native-gestures svg minimal-config small-config medium-config large-config full-config
#versioning 
QT_VERSION = 4.8.0
QT_MAJOR_VERSION = 4
QT_MINOR_VERSION = 8
QT_PATCH_VERSION = 0
#Qt for Windows CE c-runtime deployment
QT_CE_C_RUNTIME = no
#Qt for Symbian FPU settings

 

 

Obrigado pela atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso o MinGW como compilador

 

O mkspecs tem várias pastas...

 

Eu peguei elas com o comando dir

 

O volume na unidade C não tem nome.
O número de série do volume é 2C6A-D72A

Pasta de C:\Qt\4.8.0\mkspecs

08/02/2012  18:51	<DIR>      	.
08/02/2012  18:51	<DIR>      	..
05/02/2012  16:05	<DIR>      	aix-g++
05/02/2012  16:05	<DIR>      	aix-g++-64
05/02/2012  16:05	<DIR>      	aix-xlc
05/02/2012  16:05	<DIR>      	aix-xlc-64
05/02/2012  16:05	<DIR>      	common
05/02/2012  16:05	<DIR>      	cygwin-g++
05/02/2012  16:05	<DIR>      	darwin-g++
08/02/2012  18:51	<DIR>      	default
05/02/2012  16:05	<DIR>      	features
05/02/2012  16:05	<DIR>      	freebsd-g++
05/02/2012  16:05	<DIR>      	freebsd-g++34
05/02/2012  16:05	<DIR>      	freebsd-g++40
05/02/2012  16:05	<DIR>      	freebsd-icc
05/02/2012  16:05	<DIR>      	hpux-acc
05/02/2012  16:05	<DIR>      	hpux-acc-64
05/02/2012  16:05	<DIR>      	hpux-acc-o64
05/02/2012  16:05	<DIR>      	hpux-g++
05/02/2012  16:05	<DIR>      	hpux-g++-64
05/02/2012  16:05	<DIR>      	hpuxi-acc-32
05/02/2012  16:05	<DIR>      	hpuxi-acc-64
05/02/2012  16:05	<DIR>      	hpuxi-g++-64
05/02/2012  16:05	<DIR>      	hurd-g++
05/02/2012  16:05	<DIR>      	irix-cc
05/02/2012  16:05	<DIR>      	irix-cc-64
05/02/2012  16:05	<DIR>      	irix-g++
05/02/2012  16:05	<DIR>      	irix-g++-64
05/02/2012  16:05	<DIR>      	linux-cxx
05/02/2012  16:05	<DIR>      	linux-ecc-64
05/02/2012  16:05	<DIR>      	linux-g++
05/02/2012  16:05	<DIR>      	linux-g++-32
05/02/2012  16:05	<DIR>      	linux-g++-64
05/02/2012  16:05	<DIR>      	linux-g++-maemo
05/02/2012  16:05	<DIR>      	linux-icc
05/02/2012  16:05	<DIR>      	linux-icc-32
05/02/2012  16:05	<DIR>      	linux-icc-64
05/02/2012  16:05	<DIR>      	linux-kcc
05/02/2012  16:05	<DIR>      	linux-llvm
05/02/2012  16:05	<DIR>      	linux-lsb-g++
05/02/2012  16:05	<DIR>      	linux-pgcc
05/02/2012  16:05	<DIR>      	lynxos-g++
05/02/2012  16:05	<DIR>      	macx-g++
05/02/2012  16:05	<DIR>      	macx-g++40
05/02/2012  16:05	<DIR>      	macx-g++42
05/02/2012  16:05	<DIR>      	macx-icc
05/02/2012  16:05	<DIR>      	macx-llvm
05/02/2012  16:05	<DIR>      	macx-pbuilder
05/02/2012  16:05	<DIR>      	macx-xcode
05/02/2012  16:05	<DIR>      	macx-xlc
08/02/2012  18:51	<DIR>      	modules
05/02/2012  16:05	<DIR>      	netbsd-g++
05/02/2012  16:05	<DIR>      	openbsd-g++
08/02/2012  18:51       		532 qconfig.pri
05/02/2012  15:40	<DIR>      	qpa
05/02/2012  15:40	<DIR>      	qws
05/02/2012  16:05	<DIR>      	sco-cc
05/02/2012  16:05	<DIR>      	sco-g++
05/02/2012  16:05	<DIR>      	solaris-cc
05/02/2012  16:05	<DIR>      	solaris-cc-64
05/02/2012  16:05	<DIR>      	solaris-cc-64-stlport
05/02/2012  16:05	<DIR>      	solaris-cc-stlport
05/02/2012  16:05	<DIR>      	solaris-g++
05/02/2012  16:05	<DIR>      	solaris-g++-64
05/02/2012  16:05	<DIR>      	symbian-abld
05/02/2012  16:05	<DIR>      	symbian-armcc
05/02/2012  16:05	<DIR>      	symbian-gcce
05/02/2012  16:05	<DIR>      	symbian-sbsv2
05/02/2012  16:05	<DIR>      	tru64-cxx
05/02/2012  16:05	<DIR>      	tru64-g++
05/02/2012  16:05	<DIR>      	unixware-cc
05/02/2012  16:05	<DIR>      	unixware-g++
05/02/2012  15:40	<DIR>      	unsupported
05/02/2012  16:05	<DIR>      	win32-borland
05/02/2012  16:05	<DIR>      	win32-g++
05/02/2012  16:05	<DIR>      	win32-g++-4.6
05/02/2012  16:05	<DIR>      	win32-icc
05/02/2012  16:05	<DIR>      	win32-msvc2003
05/02/2012  16:05	<DIR>      	win32-msvc2005
05/02/2012  16:05	<DIR>      	win32-msvc2008
05/02/2012  16:05	<DIR>      	win32-msvc2010
05/02/2012  16:05	<DIR>      	wince50standard-armv4i-msvc2005
05/02/2012  16:05	<DIR>      	wince50standard-armv4i-msvc2008
05/02/2012  16:05	<DIR>      	wince50standard-mipsii-msvc2005
05/02/2012  16:05	<DIR>      	wince50standard-mipsii-msvc2008
05/02/2012  16:05	<DIR>      	wince50standard-mipsiv-msvc2005
05/02/2012  16:05	<DIR>      	wince50standard-mipsiv-msvc2008
05/02/2012  16:05	<DIR>      	wince50standard-sh4-msvc2005
05/02/2012  16:05	<DIR>      	wince50standard-sh4-msvc2008
05/02/2012  16:05	<DIR>      	wince50standard-x86-msvc2005
05/02/2012  16:05	<DIR>      	wince50standard-x86-msvc2008
05/02/2012  16:05	<DIR>      	wince60standard-armv4i-msvc2005
05/02/2012  16:05	<DIR>      	wince60standard-x86-msvc2005
05/02/2012  16:05	<DIR>      	wincewm50pocket-msvc2005
05/02/2012  16:05	<DIR>      	wincewm50pocket-msvc2008
05/02/2012  16:05	<DIR>      	wincewm50smart-msvc2005
05/02/2012  16:05	<DIR>      	wincewm50smart-msvc2008
05/02/2012  16:05	<DIR>      	wincewm60professional-msvc2005
05/02/2012  16:05	<DIR>      	wincewm60professional-msvc2008
05/02/2012  16:05	<DIR>      	wincewm60standard-msvc2005
05/02/2012  16:05	<DIR>      	wincewm60standard-msvc2008
05/02/2012  16:05	<DIR>      	wincewm65professional-msvc2005
05/02/2012  16:05	<DIR>      	wincewm65professional-msvc2008
      		1 arquivo(s)        	532 bytes
    		102 pasta(s)  4.396.703.744 bytes disponíveis

 

 

Acontece que, quando instalei o qt ele não veio com o compilador MinGW, e me pediu na instalação.

Depois eu procurando na internet achei o qt creator, que tinha o compilador MinGW.

Então eu reinstalei o qt e coloquei na instalação quando pediu o diretório do MinGW coloquei o que estava no qtcreator.

 

Então o tutorial que vi era para outra versão do qt, então aquelas variaveis de ambiente não pegaram, ai eu fui explorando as pastas dos qts coloquei os caminhos parecidos com os dos tutoriais.

 

edit:Como só havia um arquivo mkspecs eu coloquei também na variavel de ambiente o mkspecs\default, que também só tem um arquivo conf e um .h.

 

Eu vi agora que no features tem vários arquivos .prf

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque o seguinte na variável de ambiente QMAKESPEC:

 

<PATH_ATÉ_O_QT>/mkspecs/win32-g++-4.6

 

Vai funcionar então com o MinGW.

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se adiantou muito.

 

Eu coloquei esse caminho na variavel de ambiente Path.

 

Não sei se adiantou muito.

 

Eu tentei compilar no prompt de comando.

 

Descobri que há dois arquivos qmake.exe

 

na pasta bin e na qmake

 

Na que fica em bin não deu erro nenhum.

 

 


C:\Documents and Settings\Administrador\Meus documentos\build>C:\Qt\4.8.0\qmake\
qmake.exe
QMAKESPEC has not been set, so configuration cannot be deduced.
Error processing project file: C:/Documents and Settings/Administrador/Meus docu
mentos/build/build.pro

C:\Documents and Settings\Administrador\Meus documentos\build>del build.pro

C:\Documents and Settings\Administrador\Meus documentos\build>C:\Qt\4.8.0\qmake\
qmake.exe -project

C:\Documents and Settings\Administrador\Meus documentos\build>C:\Qt\4.8.0\qmake\
qmake.exe
QMAKESPEC has not been set, so configuration cannot be deduced.
Error processing project file: C:/Documents and Settings/Administrador/Meus docu
mentos/build/build.pro

C:\Documents and Settings\Administrador\Meus documentos\build>del build.pro

C:\Documents and Settings\Administrador\Meus documentos\build>C:\Qt\4.8.0\bin\qm
ake.exe -project

C:\Documents and Settings\Administrador\Meus documentos\build>C:\Qt\4.8.0\bin\qm
ake.exe

C:\Documents and Settings\Administrador\Meus documentos\build>make
make: no input files

C:\Documents and Settings\Administrador\Meus documentos\build>C:\Qt\4.8.0\bin\qm
ake.exe

C:\Documents and Settings\Administrador\Meus documentos\build>C:\Qt\4.8.0\bin\qm
ake.exe -?
***Unknown option -?
Usage: C:\Qt\4.8.0\bin\qmake.exe [mode] [options] [files]

QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project

Mode:
 -project   	Put qmake into project file generation mode
        		In this mode qmake interprets files as files to
        		be built,
        		defaults to *.c; *.ui; *.y; *.l; *.ts; *.xlf; *.qrc; *.h; *.hpp
; *.hh; *.hxx; *.cpp; *.cc; *.cxx
        		Note: The created .pro file probably will
        		need to be edited. For example add the QT variable to
        		specify what modules are required.
 -makefile  	Put qmake into makefile generation mode (default)
        		In this mode qmake interprets files as project files to
        		be processed, if skipped qmake will try to find a project
        		file in your current working directory

Warnings Options:
 -Wnone 		Turn off all warnings; specific ones may be re-enabled by
        		later -W options
 -Wall      	Turn on all warnings
 -Wparser   	Turn on parser warnings
 -Wlogic    	Turn on logic warnings (on by default)
 -Wdeprecated   Turn on deprecation warnings (on by default)

Options:
  * You can place any variable assignment in options and it will be 	*
  * processed as if it was in [files]. These assignments will be parsed *
  * before [files].                                             		*
 -o file    	Write output to file
 -d     		Increase debug level
 -t templ   	Overrides TEMPLATE as templ
 -tp prefix 	Overrides TEMPLATE so that prefix is prefixed into the value
 -help      	This help
 -v     		Version information
 -after 		All variable assignments after this will be
        		parsed after [files]
 -norecursive   Don't do a recursive search
 -recursive 	Do a recursive search
 -set <prop> <value> Set persistent property
 -unset <prop>  Unset persistent property
 -query <prop>  Query persistent property. Show all if <prop> is empty.
 -cache file	Use file as cache   		[makefile mode only]
 -spec spec 	Use spec as QMAKESPEC   	[makefile mode only]
 -nocache   	Don't use a cache file  	[makefile mode only]
 -nodepend  	Don't generate dependencies [makefile mode only]
 -nomoc 		Don't generate moc targets  [makefile mode only]
 -nopwd 		Don't look for files in pwd [project mode only]

C:\Documents and Settings\Administrador\Meus documentos\build>dir
O volume na unidade C não tem nome.
O número de série do volume é 2C6A-D72A

Pasta de C:\Documents and Settings\Administrador\Meus documentos\build

10/02/2012  09:49	<DIR>      	.
10/02/2012  09:49	<DIR>      	..
10/02/2012  09:49       		310 build.pro
08/02/2012  09:06       		309 Cópia de build.txt
10/02/2012  09:49	<DIR>      	debug
08/02/2012  09:21       		209 main.cpp
10/02/2012  09:50     		6.120 Makefile
10/02/2012  09:50     		4.942 Makefile.Debug
10/02/2012  09:50     		4.985 Makefile.Release
10/02/2012  09:49	<DIR>      	release
      		6 arquivo(s) 		16.875 bytes
      		4 pasta(s)  4.365.557.760 bytes disponíveis

C:\Documents and Settings\Administrador\Meus documentos\build>make
make: no input files

C:\Documents and Settings\Administrador\Meus documentos\build>make ?
make: ?: Invalid argument
make: no input files

C:\Documents and Settings\Administrador\Meus documentos\build>make build.pro
build.pro: file not recognized: File format not recognized
collect2: ld returned 1 exit status

C:\Documents and Settings\Administrador\Meus documentos\build>make makefile
makefile: file not recognized: File format not recognized
collect2: ld returned 1 exit status

C:\Documents and Settings\Administrador\Meus documentos\build>make Makefile
Makefile: file not recognized: File format not recognized
collect2: ld returned 1 exit status

C:\Documents and Settings\Administrador\Meus documentos\build>make main.cpp
main.cpp:1:24: error: QApplication: No such file or directory
main.cpp:2:18: error: QLabel: No such file or directory
main.cpp: In function 'int main(int, char**)':
main.cpp:6: error: 'QApplication' was not declared in this scope
main.cpp:6: error: expected ';' before 'app'
main.cpp:7: error: 'QLabel' was not declared in this scope
main.cpp:7: error: 'label' was not declared in this scope
main.cpp:7: error: expected type-specifier before 'QLabel'
main.cpp:7: error: expected ';' before 'QLabel'
main.cpp:9: error: 'app' was not declared in this scope

C:\Documents and Settings\Administrador\Meus documentos\build>

 

E parece que quase consigo compilar. com make main.cpp

 

Parece que não incluiu os arquivos...

 

 

#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();
}

 

Edit:

 

Enquanto o qmake da pasta qmake só criou o arquivo build.pro

 

O qmake da pasta bin criou também as pastas debug e release(vazias)

 

E 3 arquivos:

Makefile

Makefile.Debug

Makefile.Release

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá, então o PATH é que está desconfigurado...

 

Utilize o da pasta bin e faça o seguinte:

 

cd <pasta_com_a_source>
qmake -project
qmake <nome_da_pasta>.pro
make

 

OBS: Para o MinGW, você deve usar mingw32-make ao invés de só make, mas deve adicionar a pasta <PATH_ATE_A_PASTA_DO_MINGW>/bin no PATH...

 

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parece que dessa vez funcionou:

 

C:\Documents and Settings\Administrador\Meus documentos\build>C:\Qt\4.8.0\bin\qm
ake.exe -project

C:\Documents and Settings\Administrador\Meus documentos\build>C:\Qt\4.8.0\bin\qm
ake.exe build.pro

C:\Documents and Settings\Administrador\Meus documentos\build>mingw32-make
mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/Documents and Settings/Administrador/Meu
s documentos/build'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -
DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -
DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\..\..\
..\Qt\4.8.0\include\QtCore" -I"..\..\..\..\Qt\4.8.0\include\QtGui" -I"..\..\..\.
.\Qt\4.8.0\include" -I"." -I"..\..\..\..\Qt\4.8.0\include\ActiveQt" -I"debug" -I
"..\..\..\..\Qt\4.8.0\mkspecs\default" -o debug\main.o main.cpp
g++ -mthreads -Wl,-subsystem,windows -o debug\build.exe debug/main.o  -L"c:\Qt\4
.8.0\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
mingw32-make[1]: Leaving directory `C:/Documents and Settings/Administrador/Meus
documentos/build'

 

Quando eu fui execultar o execultavel da pasta debug pediu uma dll.

 

qtcore4.dll(uns 40 mb)

Ai eu copiei pra mesma pasta.

 

Depois pediu o qtguid4.dll, só que são mais de 800 mb de dlls,

toda vez que alguem for instalar um programa com qt vai ter que instalar 800 MB de dlls?

Ou só precisa instalar uma vez o qt para execultar os programas feitos no qt?

 

 

Como achei mais fácil mover o execultavel que compilei(400KB) eu consegui execultar.

 

 

Apareceu uma janela pequena escrito hello world.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo, não vai pedir caso você adicione a pasta <QT_DIR>/bin no PATH. Mas quando for distribuir, vai ter sim.

 

Agora, você pode escolher entre compilar o Qt estaticamente, ficando seu executável com uns 5mb, ou instalar a versão do Visual Studio do Qt, as dll's ficam só com uns 10mb...

 

 

 

Abraços :D

 

@edit:

 

As dll's que vai precisar distribuir são as qtcored4.dll e qtguid4.dll...

 

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.