Jump to content

Como compilar um ficheiro c++ no windows?


msmsms
 Share

Go to solution Solved by HappyHippyHippo,

Recommended Posts

estou com um trabalho de openGL e devido ao facto do codeblock nao estar a executar alguns dos trabalhos eu estou a tentar descobrir como se compila e executa na consola do windows

como compilar um ficheiro openGL c++ no windows?

fica aqui o codigo de exemplo que estou a tentar compilar

este mesmo codigo compila e executa no code:blocks mas quando preciso de compilar varios ficheiro com header o code:blocks nao responde nada

logo eu penso que se conseguir compilar este na consola tambem vou conseguir compilar os restantes mesmo estando com header

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <GL/glut.h>

//--------------------------------- Definir cores
#define AZUL	 0.0, 0.0, 1.0, 1.0
#define VERMELHO 1.0, 0.0, 0.0, 1.0
#define AMARELO  1.0, 1.0, 0.0, 1.0
#define VERDE	0.0, 1.0, 0.0, 1.0
#define LARANJA  1.0, 0.5, 0.1, 1.0
#define WHITE	1.0, 1.0, 1.0, 1.0
#define BLACK	0.0, 0.0, 0.0, 1.0
#define GRAY	 0.9, 0.92, 0.29, 1.0
#define PI 3.14159
//================================================================================
//===========================================================Variaveis e constantes
//------------------------------------------------------------ Sistema Coordenadas
GLfloat   xC=10.0, yC=10.0, zC=20.0;
GLint	 wScreen=700, hScreen=600;
GLfloat   mesa=1.5;
GLfloat   bule=0.5;
GLfloat   quad=3.0;
GLfloat   mesaP[]= {3, 0, 3};

//================================================================================
//=========================================================================== INIT
void init(void)
{
glClearColor(GRAY);
glShadeModel(GL_SMOOTH);
}

void drawScene(){
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Mesa
glPushMatrix();
 glTranslatef( mesaP[0], mesaP[1]+mesa/2, mesaP[2]);
 glColor4f(AZUL);
 glutSolidCube(mesa);
 glColor4f(VERDE);
 glutWireCube(mesa);
glPopMatrix();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Chaleira
//*********************** IMPLEMENTAR
//*********************** IMPLEMENTAR
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Quadro
//*********************** IMPLEMENTAR
//*********************** IMPLEMENTAR
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Eixos
glColor4f(BLACK);
glBegin(GL_LINES);
 glVertex3i( 0, 0, 0);
 glVertex3i(10, 0, 0);
glEnd();
glBegin(GL_LINES);
 glVertex3i(0,  0, 0);
 glVertex3i(0, 10, 0);
glEnd();
glBegin(GL_LINES);
 glVertex3i( 0, 0, 0);
 glVertex3i( 0, 0,10);
glEnd();

}
void display(void){
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ Apagar ]
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ Janela Visualizacao ]
//-----COMANDO VIEWPORT
glViewport (0,0,800,600);
//*********************** IMPLEMENTAR
//  Opcoes
//*********************** IMPLEMENTAR

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ Projeccao]
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//---PROJECOES
//glOrtho (-xC,xC,-yC,yC,-zC,zC);
//*********************** IMPLEMENTAR
gluPerspective(120, 2, 1.0, 100.0 );
//  Pode tambem ser perspectiva
//*********************** IMPLEMENTAR
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ Modelo+View(camera/observador) ]
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(5,10,5, 0,0,0, 0, 1, 0);
//*********************** IMPLEMENTAR
//  Modificar posicao do observador
//*********************** IMPLEMENTAR

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ Objectos ]
drawScene();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Actualizacao
glutSwapBuffers();
}

//======================================================= EVENTOS
void keyboard(unsigned char key, int x, int y){
switch (key) {
//--------------------------- Viewport
case 'a':
case 'A':
//*********************** IMPLEMENTAR
//*********************** IMPLEMENTAR
//--------------------------- Projeccao
case 'q':
case 'Q':
//*********************** IMPLEMENTAR
//*********************** IMPLEMENTAR
 //--------------------------- Escape
case 27:
 exit(0);
 break;
 }
}
void teclasNotAscii(int key, int x, int y){
if(key == GLUT_KEY_UP)
if(key == GLUT_KEY_DOWN)
if(key == GLUT_KEY_LEFT)
if(key == GLUT_KEY_RIGHT)
//*********************** IMPLEMENTAR
//*********************** IMPLEMENTAR
glutPostRedisplay();
}
//======================================================= MAIN
int main(int argc, char** argv){
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH );
glutInitWindowSize (wScreen, hScreen);
glutInitWindowPosition (100, 100);
glutCreateWindow (":::: CG 2011/12 :::::::::   (left,right,up,down, 'a', 'q') ");
init();
glutSpecialFunc(teclasNotAscii);
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;
}
Edited by msmsms
Link to comment
Share on other sites

depende de:

- compilador usado

- ficheiros de código a compilar

- necessidades

no final de contas : tenta resolver o teu problema com o code:blocks

ps : esse código é C e não C++

eu sei que esse codigo em c

mas nem esse consigo compilar na consola

se eu consegui se compilar esse mais simples na consola acho que tambem conseguiria compilar o outro em c++ com varias classes

o problema é que nao encontro o comando gcc do open gl para windows que trabalhe

nem sei se é necessario ter os ficheiros do opengl na pasta do projecto ou assim

seja como for o opengl esta instalado no pc e o code blocks consegue abrir esse em c

Link to comment
Share on other sites

Em 23/03/2014 às 00:29, thoga31 disse:

Então porque colocaste no quadro de C++?

Tópico movido para o quadro de C.

em visual studio ao tentar compilar depois de ter colocado os ficheiros nas pastas LIB e INCLUDES

eu obtenho este erro ao tentar compilar e executar no visual studio

23i6v7c.jpg

como se pode ver tambem tenho as libs incluidas dentro da configuração do visual studio

2yknnsz.jpg

é pessima a situação pois desta forma nao consigo trabalhar para a disciplina

se pelo menos eu consegui-se saber como compilar por meio da consola eu trabalhava mesmo com ficheiros e estava acabado

Link to comment
Share on other sites

Significa apenas que o ficheiro executável não existe, ou seja, não foi criado. Ali em baixo estou a ver que a compilação ("Build") falhou ("0 succeeded, 1 failed...").

nao criado como?

eu criei os ficheiros e salvei e eles estao no IDE e numa pasta do projecto

eu ja consegui perceber que se continuar a insistir com o visual studio vou ficar ate à hora da minha morte a resolver o problema do .exe que ele diz que nao existe.

se alguem souber como se compila opengl em c++ ou c (o comando para o fazer)

que me deixe saber que fico bastante grato

Edited by thoga31
Removida linguagem imprópria
Link to comment
Share on other sites

nao criado como?

eu criei os ficheiros e salvei e eles estao no IDE e numa pasta do projecto

Os ficheiros *.c e outros existem, mas uma vez que a compilação falhou, o *.exe não existe. O *.exe não aparece miracolosamente sob a Graça de Deus, há um compilador por detrás a fazer esse serviço. Se o compilador não compila por haver erros, então não há *.exe para ninguém.

O que tens de perceber é o porquê de o Visual Studio te informar que o Build falhou (vê o separador "Output").

Edited by thoga31

Knowledge is free!

Link to comment
Share on other sites

o output diz isto

1>------ Build started: Project: teste100, Configuration: Debug Win32 ------

1> trabalho4Completo.cpp

1>c:\documents and settings\gorila\os meus documentos\visual studio 2010\projects\teste100\teste100\trabalho4completo.cpp(6): fatal error C1083: Cannot open include file: 'GL/glut.h': No such file or directory

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

eu segui à risca este tuturial na preparação do openGL para o visual c++, mas tambem nao sei se ele pode ter alguma falta

http://social.msdn.microsoft.com/Forums/vstudio/en-US/22e338fa-0b48-4f3f-b5b7-c03bd9e7ad5b/configuring-opengl-in-windows-7-on-the-microsoft-visual-studio-2012-express-edition?forum=vcgeneral

Edited by msmsms
Link to comment
Share on other sites

  • Solution

se fizeste este passo:

Copied glut.h in D:\Visual Studio Express Edition 2012\VC\include

é obvio que a inclusão do header nunca seria da maneira como tens mas sim : GL/glut.h

por outras palavras:

#include <glut.h>

ps : vê como é muito mais simples quando se apresenta as mensagens de erro que o compilador fornece !!!

  • Vote 2
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

alterei como disses te e agora obtenho um novo erro por causa de glut32.lib mas o ficheiro esta no include e esta adicionado nas propriedades, o que faço?

1>------ Build started: Project: 3, Configuration: Debug Win32 ------

1>LINK : fatal error LNK1104: cannot open file 'glut32.lib'

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.