/C++ / starta en exe fil i ubuntume

Här diskuteras programmering och utveckling
boucka
Inlägg: 4
Blev medlem: 18 aug 2008, 18:13
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

/C++ / starta en exe fil i ubuntume

Inlägg 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
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

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

Inlägg av Konservburk »

Du måste kompilera programmet innan du kan köra det.
boucka
Inlägg: 4
Blev medlem: 18 aug 2008, 18:13
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

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

Inlägg 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! ^-^
boucka
Inlägg: 4
Blev medlem: 18 aug 2008, 18:13
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

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

Inlägg 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
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

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

Inlägg 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.
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

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

Inlägg 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();
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
boucka
Inlägg: 4
Blev medlem: 18 aug 2008, 18:13
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS

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

Inlägg av boucka »

tackar
Inhuman Soul
Inlägg: 339
Blev medlem: 25 mar 2008, 21:01
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Linköping

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

Inlägg 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;
}
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

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

Inlägg 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. :)
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Användarvisningsbild
Jarulf
Inlägg: 604
Blev medlem: 04 feb 2007, 22:46
OS: Ubuntu
Ort: Skellefteå
Kontakt:

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

Inlägg 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å?
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

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

Inlägg 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
Inhuman Soul
Inlägg: 339
Blev medlem: 25 mar 2008, 21:01
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Linköping

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

Inlägg 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.
Användarvisningsbild
Jarulf
Inlägg: 604
Blev medlem: 04 feb 2007, 22:46
OS: Ubuntu
Ort: Skellefteå
Kontakt:

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

Inlägg 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?
Användarvisningsbild
gasol
Inlägg: 405
Blev medlem: 27 jul 2007, 14:57
Kontakt:

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

Inlägg 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
The Black Mountain Scorpion Hoedown Bluegrass Experience Gang
From Left to Right: Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle.
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

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

Inlägg 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? :)
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Emerain
Inlägg: 16
Blev medlem: 09 okt 2008, 06:45
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS

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

Inlägg 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
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

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

Inlägg 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
Skriv svar

Återgå till "Programmering och webbdesign"