Sida 1 av 1

/C++ / starta en exe fil i ubuntume

Postat: 20 aug 2008, 18:33
av boucka
jag skrev nyligen min första c++ :-* ja det gick bra kolla här.

devc++:
//01First2.cpp
#include <iostream>
using namespace std;

int main()
{
cout << '\n';
cout << "Detta är mitt första c++ program!\n";
cout << "Det skriver ut 2 rader text på skärmen.\n";
cout << '\n';


system("pause");

return 0;
}
ok det ser väll inte fel ut men varför kan jag inte öppna den,men det borde komma fram en bash som visar innehållet etc eller en popup nånting hahahaha, uhhhh vad skall jag göra, e lost så? ska jag spara/köra det på nått annat sätt eller vad, hjälp O0

Re: /C++ / starta en exe fil i ubuntume

Postat: 20 aug 2008, 18:49
av Konservburk
Du måste kompilera programmet innan du kan köra det.

Re: /C++ / starta en exe fil i ubuntume

Postat: 20 aug 2008, 19:03
av boucka
har gjort det.
jag tryckde på compilation efter jag sparat den sen poppa den ut som en exe fil men det hjälpte inte men jag gör det igen! ^-^

Re: /C++ / starta en exe fil i ubuntume

Postat: 20 aug 2008, 19:10
av boucka
ok det funka lite men bara när jag debuggar den men när jag klickar på den 2ggr funkar den ej!haha
vad e detta 1 problemet återstår men varför funkar den i debugg knappens värld men inte på desktoppen e det compilationen?
??? :'( :o

Re: /C++ / starta en exe fil i ubuntume

Postat: 20 aug 2008, 19:45
av Konservburk
Använder du något program när du kodar som har en debugknapp? Jag fattar inte riktigt vad du menar ???

När du har kompilerat programmet ska du få en ny körbar fil. Du ska inte köra textfilen med själva koden.

Re: /C++ / starta en exe fil i ubuntume

Postat: 20 aug 2008, 19:50
av dmz
boucka skrev:jag skrev nyligen min första c++ :-* ja det gick bra kolla här.

devc++:
//01First2.cpp
#include <iostream>
using namespace std;

int main()
{
cout << '\n';
cout << "Detta är mitt första c++ program!\n";
cout << "Det skriver ut 2 rader text på skärmen.\n";
cout << '\n';


system("pause");

return 0;
}
ok det ser väll inte fel ut men varför kan jag inte öppna den,men det borde komma fram en bash som visar innehållet etc eller en popup nånting hahahaha, uhhhh vad skall jag göra, e lost så? ska jag spara/köra det på nått annat sätt eller vad, hjälp O0
Måste bara påpeka vissa saker.
Jag rekommenderar dig att använda std::cout <<""; osv istället för att inkludera hela namespace std.
Varför använder du dev-c++ i linux? Det finns bättre alternativ, Geany till exempel.
Undvik system("pause"); (andra system(""); - kommandon också för den delen.
Om du vill ha en "paus" i programmet bör du istället göra så här:

Kod: Markera allt

std::cin.get();
std::cin.ignore();

Re: /C++ / starta en exe fil i ubuntume

Postat: 20 aug 2008, 20:59
av boucka
tackar

Re: /C++ / starta en exe fil i ubuntume

Postat: 21 aug 2008, 14:15
av Inhuman Soul
dmz skrev: Måste bara påpeka vissa saker.
Jag rekommenderar dig att använda std::cout <<""; osv istället för att inkludera hela namespace std.[/code]
Något som annars kan göra, om man inte orkar skriva std framför allt, är ju att inkludera bara det man använder.

T ex:

Kod: Markera allt

#include <iostream>
using std::cout;
using std::cin;

int main()
{
cout << '\n';
cout << "Detta är mitt första c++ program!\n";
cout << "Det skriver ut 2 rader text på skärmen.\n";
cout << '\n';

cin.get();
cin.ignore();

return 0;
}

Re: /C++ / starta en exe fil i ubuntume

Postat: 21 aug 2008, 14:48
av dmz
Inhuman Soul skrev:
dmz skrev: Måste bara påpeka vissa saker.
Jag rekommenderar dig att använda std::cout <<""; osv istället för att inkludera hela namespace std.[/code]
Något som annars kan göra, om man inte orkar skriva std framför allt, är ju att inkludera bara det man använder.

T ex:

Kod: Markera allt

#include <iostream>
using std::cout;
using std::cin;

int main()
{
cout << '\n';
cout << "Detta är mitt första c++ program!\n";
cout << "Det skriver ut 2 rader text på skärmen.\n";
cout << '\n';

cin.get();
cin.ignore();

return 0;
}
Jomenvisst! Jag tycker dock att det är betydligt snyggare och mer lättläst att använda std::blabla osv. :)

Re: /C++ / starta en exe fil i ubuntume

Postat: 21 aug 2008, 15:14
av Jarulf
Inhuman Soul skrev:
dmz skrev: Måste bara påpeka vissa saker.
Jag rekommenderar dig att använda std::cout <<""; osv istället för att inkludera hela namespace std.[/code]
Något som annars kan göra, om man inte orkar skriva std framför allt, är ju att inkludera bara det man använder.
Vad tjänar man på att göra så?

Re: /C++ / starta en exe fil i ubuntume

Postat: 21 aug 2008, 17:17
av micke_nordin
spara filen som tex "01First2.cpp" i det här fallet
öppna en terminal och skriv (tre kommandon som varje skall följas av enter):

Kod: Markera allt

cd /till/mappen/med/programmet
g++ 01First2.cpp -o 01First2.o
./01First2.o
Då bör ditt program starta, om du använder en IDE som har en kompileringsknapp och som spottar ut en exekverbarfil behöver du bara göra detta:

Kod: Markera allt

cd /till/mappen/med/programmet
./namnet_på_din.fil
/Micke

Re: /C++ / starta en exe fil i ubuntume

Postat: 21 aug 2008, 23:00
av Inhuman Soul
Jarulf skrev:
Inhuman Soul skrev:
dmz skrev: Måste bara påpeka vissa saker.
Jag rekommenderar dig att använda std::cout <<""; osv istället för att inkludera hela namespace std.[/code]
Något som annars kan göra, om man inte orkar skriva std framför allt, är ju att inkludera bara det man använder.
Vad tjänar man på att göra så?
Om du menar vad man tjänar på att inte inkludera hela namespace std så vet jag inte riktigt i detalj, men det säger ju sig självt att det är lite onödigt att inkluderar mer saker än vad man behöver...

Om du menar vad man tjänar på att skriva t ex:

Kod: Markera allt

using std::cout;
int main()
{
cout << "test!\n";
cout << "test igen!\n";
cout << "test en gång till!\n";
return 0;
}
istället för:

Kod: Markera allt

int main()
{
std::cout << "test!\n";
std::cout << "test igen!\n";
std::cout << "test en gång till!\n";
return 0;
}
så är det ju för att man inte behöver skriva std varje gång man skriver cout, utan bara en.

Re: /C++ / starta en exe fil i ubuntume

Postat: 21 aug 2008, 23:44
av Jarulf
Inhuman Soul skrev:
Jarulf skrev:
Inhuman Soul skrev:
dmz skrev: Måste bara påpeka vissa saker.
Jag rekommenderar dig att använda std::cout <<""; osv istället för att inkludera hela namespace std.[/code]
Något som annars kan göra, om man inte orkar skriva std framför allt, är ju att inkludera bara det man använder.
Vad tjänar man på att göra så?
Om du menar vad man tjänar på att inte inkludera hela namespace std så vet jag inte riktigt i detalj, men det säger ju sig självt att det är lite onödigt att inkluderar mer saker än vad man behöver...
Ja, jag var inte bra på att uttrycka min fråga insåg jag nu ;D

Jag menade varför man inte skulle inkludera mer namespace än man behövde. Det kompileras väl ändå knappast in i binären?

Re: /C++ / starta en exe fil i ubuntume

Postat: 21 aug 2008, 23:57
av gasol
Jarulf skrev:
Inhuman Soul skrev:
Jarulf skrev:
Inhuman Soul skrev: Något som annars kan göra, om man inte orkar skriva std framför allt, är ju att inkludera bara det man använder.
Vad tjänar man på att göra så?
Om du menar vad man tjänar på att inte inkludera hela namespace std så vet jag inte riktigt i detalj, men det säger ju sig självt att det är lite onödigt att inkluderar mer saker än vad man behöver...
Ja, jag var inte bra på att uttrycka min fråga insåg jag nu ;D

Jag menade varför man inte skulle inkludera mer namespace än man behövde. Det kompileras väl ändå knappast in i binären?
Nope men det är tydligare vilken funktioner du ropar på, om det står std::cout så vet man direkt att det är just den funktionen som körs, om du bara skriver cout så har man ingen om vilken funktion som anropas. Men när man bara gör ett program som är ett par rader så spelar det ingen större roll...

ERRR var tvungen att editera lite, phpBB3 verkar bara ha ett rekursivt djup 4 på kommentarer... ganska vekt :P

Re: /C++ / starta en exe fil i ubuntume

Postat: 22 aug 2008, 05:56
av dmz
Precis, det skulle lika gärna kunna finnas en funktion som är deklarerad som cout någon annanstans, och vad händer då måntro? :)

Re: /C++ / starta en exe fil i ubuntume

Postat: 10 okt 2008, 08:25
av Emerain
micke_nordin skrev:spara filen som tex "01First2.cpp" i det här fallet
öppna en terminal och skriv (tre kommandon som varje skall följas av enter):

Kod: Markera allt

cd /till/mappen/med/programmet
g++ 01First2.cpp -o 01First2.o
./01First2.o
Då bör ditt program starta, om du använder en IDE som har en kompileringsknapp och som spottar ut en exekverbarfil behöver du bara göra detta:

Kod: Markera allt

cd /till/mappen/med/programmet
./namnet_på_din.fil
/Micke
Tack!
Det där löste flera av mina problem jag haft med att kompilera och exekvera C++ program.
// Gustav

Re: /C++ / starta en exe fil i ubuntume

Postat: 10 okt 2008, 09:01
av micke_nordin
micke_nordin skrev:spara filen som tex "01First2.cpp" i det här fallet
öppna en terminal och skriv (tre kommandon som varje skall följas av enter):

Kod: Markera allt

cd /till/mappen/med/programmet
g++ 01First2.cpp -o 01First2.o
./01First2.o
I själva verket är det där en minimal kompileringssträng, kolla t.ex. på växeln -g som gör att debugginformation skapas också:

Kod: Markera allt

g++ din_fil.cpp -g -o ditt_program.o
På så sätt kan du debugga filen med gdb.

Skriv man gcc och man gdb i terminalen så får du mer information (q avslutar).

/Micke