PDA

View Full Version : [C++] Problemi di compilazione


Ageggio
29-09-2008, 21:35
Per un semplice programma come questo:

#include <iostream>

int main()
{
std::cout << "Hello World\n";
return (0);
}



Questa:
std::cout << "Hello World\n";
Mi viene segnalata come errata!!!
Come mai?

Uso Dev-C++

Ageggio
29-09-2008, 21:37
Ora, lo compila, clickando sul programma, non va....
come mai?

C' è scritto nel compilatore:

C:\Documents and Settings\Mattia\Desktop\Makefile.win [Build Error] No rule to make target `SenzaTitolo3.cpp', needed by `SenzaTitolo3.o'. Stop.

Mattyfog
29-09-2008, 21:57
prova a scrivere cout << "Hello World\n";
senza std::

IceCoder
29-09-2008, 22:04
Ora, lo compila, clickando sul programma, non va....
come mai?

C' è scritto nel compilatore:

C:\Documents and Settings\Mattia\Desktop\Makefile.win [Build Error] No rule to make target `SenzaTitolo3.cpp', needed by `SenzaTitolo3.o'. Stop.

non saprei, devi aver configurato male devc++, a me non ha mai dato questi problemi (l'ho usato per circa un mesetto, ma facevo di tutto).

prova a scaricare Microsoft Visual C++ Express Edition 2008. lo scarichi direttamente dal sito MS e non da alcun problema. (premetto che non lo uso, io sono ancora fermo alla versione 2005 perchè uso anche altri linguaggi :P)

IceCoder
29-09-2008, 22:08
prova a scrivere cout << "Hello World\n";
senza std::

non penso sia un problema, la sintassi è corretta. potrebbe eliminare std:: usando "using namespace" al massimo..

DanieleC88
29-09-2008, 23:48
Se non specifica using namespace std allora deve scrivere std::cout. :)

L'ultimo problema segnalato sembra essere dovuto ad un Makefile generato erroneamente. I casi sono due: puoi provare a regolare le impostazioni del progetto per cercare di fargli generare il Makefile corretto, oppure puoi modificarlo a mano (non è complesso).

In ogni caso, il problema principale è Dev-C++. :D
Installa Code::Blocks o Microsoft Visual Studio 2008 Express Edition, fidati che ne vale la pena.

ciao ;)

Ageggio
30-09-2008, 14:05
Grazie a tutti!!!
Io so programmare, a non capisco il perchè di questi problemi....

I programmi già installati nel programma, come questo:

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
system("PAUSE");
return EXIT_SUCCESS;
}


Non danno nessun problema, poi, non è la sintassi errata, perchè, non è quella che segnala!!!

lo compila, fa il programma, ma una volta che ci clcko sopra, viene il promt dei comandi, ma va subito via, questione di un quarto di secondo!!!

lo ho configurato bene:
C++
Console application

ora non mi da nessun errore, ma come già detto, il programma non parte...:mad:

Provo a scaricare un' altro compilatore!!!

Ps. scusate, ma sono mesi che fa così, e me gli rompe....:mad: :ncomment:

Chiedo a voi!!! :help:

ciao!!:D

Tommo
30-09-2008, 14:45
In realtà mi sa proprio che il programma va, ma va troppo veloce :sofico:
Cioè, si apre e si chiude senza darti il tempo di vederlo.

Prova a mettere un qualcosa che lo stoppi alla fine, tipo

char c;
while( c != 's' )
{
std::cout << "\nVuoi uscire? ";
std::cin >> c;
}

Ageggio
30-09-2008, 17:05
Ho risolto, per ringraziarvi, vi regalo questo semplice programma:



RegalinoApp.cpp
//---------------------------------------------------------------------------
//
// Name: RegalinoApp.cpp
// Author: Ageggio
// Created: 30/09/2008 16.52.51
// Description:
//
//---------------------------------------------------------------------------

#include "RegalinoApp.h"
#include "Regalino.h"

IMPLEMENT_APP(RegalinoApp)

bool RegalinoApp::OnInit()
{
Regalino* dialog = new Regalino(NULL);
SetTopWindow(dialog);
dialog->Show(true);
return true;
}

int RegalinoApp::OnExit()
{
return 0;
}




RegalinoApp.h
//---------------------------------------------------------------------------
//
// Name: RegalinoApp.h
// Author: Ageggio
// Created: 30/09/2008 16.52.51
// Description:
//
//---------------------------------------------------------------------------

#ifndef __REGALINOApp_h__
#define __REGALINOApp_h__

#ifdef __BORLANDC__
#pragma hdrstop
#endif

#ifndef WX_PRECOMP
#include <wx/wx.h>
#else
#include <wx/wxprec.h>
#endif

class RegalinoApp : public wxApp
{
public:
bool OnInit();
int OnExit();
};

#endif




RegalinoApp.rc
//---------------------------------------------------------------------------
//
// Name: RegalinoApp.rc
// Author: Ageggio
// Created: 30/09/2008 16.52.51
// Description:
//
//---------------------------------------------------------------------------

#include <wx/msw/wx.rc>




Regalino.h
//---------------------------------------------------------------------------
//
// Name: Regalino.h
// Author: Ageggio
// Created: 30/09/2008 16.52.51
// Description: Regalino class declaration
//
//---------------------------------------------------------------------------

#ifndef __REGALINO_h__
#define __REGALINO_h__

#ifdef __BORLANDC__
#pragma hdrstop
#endif

#ifndef WX_PRECOMP
#include <wx/wx.h>
#include <wx/dialog.h>
#else
#include <wx/wxprec.h>
#endif

//Do not add custom headers between
//Header Include Start and Header Include End.
//wxDev-C++ designer will remove them. Add custom headers after the block.
////Header Include Start
#include <wx/textctrl.h>
#include <wx/stattext.h>
////Header Include End

////Dialog Style Start
#undef Regalino_STYLE
#define Regalino_STYLE wxCAPTION | wxSYSTEM_MENU | wxDIALOG_NO_PARENT | wxMINIMIZE_BOX | wxCLOSE_BOX
////Dialog Style End

class Regalino : public wxDialog
{
private:
DECLARE_EVENT_TABLE();

public:
Regalino(wxWindow *parent, wxWindowID id = 1, const wxString &title = wxT("Regalino"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = Regalino_STYLE);
virtual ~Regalino();

private:
//Do not add custom control declarations between
//GUI Control Declaration Start and GUI Control Declaration End.
//wxDev-C++ will remove them. Add custom code after the block.
////GUI Control Declaration Start
wxTextCtrl *WxMemo1;
wxStaticText *WxStaticText1;
////GUI Control Declaration End

private:
//Note: if you receive any error with these enum IDs, then you need to
//change your old form code that are based on the #define control IDs.
//#defines may replace a numeric value for the enum names.
//Try copy and pasting the below block in your old form header files.
enum
{
////GUI Enum Control ID Start
ID_WXMEMO1 = 1002,
ID_WXSTATICTEXT1 = 1001,
////GUI Enum Control ID End
ID_DUMMY_VALUE_ //don't remove this value unless you have other enum values
};

private:
void OnClose(wxCloseEvent& event);
void CreateGUIControls();
};

#endif




Regalino.cpp
//---------------------------------------------------------------------------
//
// Name: Regalino.cpp
// Author: Ageggio
// Created: 30/09/2008 16.52.51
// Description: Regalino class implementation
//
//---------------------------------------------------------------------------

#include "Regalino.h"

//Do not add custom headers
//wxDev-C++ designer will remove them
////Header Include Start
////Header Include End

//----------------------------------------------------------------------------
// Regalino
//----------------------------------------------------------------------------
//Add Custom Events only in the appropriate block.
//Code added in other places will be removed by wxDev-C++
////Event Table Start
BEGIN_EVENT_TABLE(Regalino,wxDialog)
////Manual Code Start
////Manual Code End

EVT_CLOSE(Regalino::OnClose)
END_EVENT_TABLE()
////Event Table End

Regalino::Regalino(wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &position, const wxSize& size, long style)
: wxDialog(parent, id, title, position, size, style)
{
CreateGUIControls();
}

Regalino::~Regalino()
{
}

void Regalino::CreateGUIControls()
{
//Do not add custom code between
//GUI Items Creation Start and GUI Items Creation End.
//wxDev-C++ designer will remove them.
//Add the custom code before or after the blocks
////GUI Items Creation Start

SetTitle(wxT("Regalino"));
SetIcon(wxNullIcon);
SetSize(8,8,629,434);
Center();


WxMemo1 = new wxTextCtrl(this, ID_WXMEMO1, wxT(""), wxPoint(11,32), wxSize(600,357), wxTE_MULTILINE, wxDefaultValidator, wxT("Qui potete scrivere ciò che volete!!!"));
WxMemo1->SetMaxLength(0);
WxMemo1->AppendText(wxT("Qui potete scrivere cio che volete"));
WxMemo1->SetFocus();
WxMemo1->SetInsertionPointEnd();
WxMemo1->SetFont(wxFont(8, wxSWISS, wxNORMAL,wxNORMAL, false, wxT("Tahoma")));

WxStaticText1 = new wxStaticText(this, ID_WXSTATICTEXT1, wxT("Questo è un programma che regalo agli utenti che mi hanno aiutato a risolvere il mio problema."), wxPoint(18,9), wxDefaultSize, 0, wxT("WxStaticText1"));
WxStaticText1->SetFont(wxFont(8, wxSWISS, wxNORMAL,wxNORMAL, false, wxT("Tahoma")));
////GUI Items Creation End
}

void Regalino::OnClose(wxCloseEvent& /*event*/)
{
Destroy();
}




:D Grazie ancora di tutto!!!:D