Frage von MasterSnoopy, 27

Weshalb kann ich mit keiner IDE unter ubuntuMATE C++ programmieren?

Ich habe gestern von Windows zu UbuntuMATE gewechselt und wollte wieder mit C++ anfangen (habe schon ein mal angefangen zu lernen , aber schnell wieder aufgegeben) und habe mir deshalb per

apt-get install netbeans

Netbeans installiert und kurz darauf das C++ plugin installiert.

Beim starten hat mir Netbeans dann erzählz, dass keine compiler installiert seien, habe mir also per

apt-get install g++

einen Compiler gedwonloadet. Habe netbeans neu gestartet, ein projekt erstellt und ein Hello World Programm geschrieben

#include <iostream>
 using namespace std;
 
 int main(){
     cout<<"Hallo Welt!"<<endl;
     return 0;
 }

habe auf "build project" gedrückt und dann ausführen lassen, aber ich habe nur den fehlercode 2 bekommen (habe die genaue fehlermeldung vergessen).

Nachdem ich im Internet nichts sinnvolles gefunden habe , habe ich Netbeans deinstalliert und stattdessen CodeBlocks mit

apt-get install codeblocks

installiert. Auch diese Ide konnte ich Problemlos starten, aber beim ausführen dieses codes

#include <iostream>
using namespace std;

int main()
{
    cout<<"Test"<<endl;
    return 0;
}

kam diese meldung im log :

Process terminated with status 1 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))

wo genau liegt mein Fehler und wie behebe ich ihn ? Danke im Voraus.

Antwort
von softie1962, 18

Dein Programm ist so ok bis auf die Tatsache, dass main normalerweise Parameter erwartet.

also

int main( int argc, char* argv[] )

Probier doch mal den C - Compiler direkt aufzurufen im Terminalfenster, also

c++ -o hello hello.cpp

Kommt dabei keine Fehlermeldung starte das Programm mit

./hello


Kommentar von MasterSnoopy ,

sicher , dass c++ und nicht g++ gemeint ist ?

Kommentar von softie1962 ,

Ist bei mir auf dem Centos System das gleiche

Kommentar von MasterSnoopy ,

was genau bringt denn das "int argc, char* argv[]" ?

Kommentar von softie1962 ,

Über argc wird die Anzahl der Parameter übergeben, argv sind die Parameter selbst. argv[ 0 ] ist das Programm selbst.

Kommentar von MasterSnoopy ,

und was macht das char* ? (tut mir leid , dass ich so dumm frage , habe vorher nur mit php und python gearbeitet ...)

Kommentar von softie1962 ,

char* argv[] ist ein Array von Zeichenketten.

Würdest du das Programm starten mit

./hello 1 xyz "1 xyz" dann würde argv folgendes enthalten:

argv[ 0 ] "./hello"

argv[ 1 ] "1"

argv[ 2 ] "xyz"

argv[ 3 ] "1 xyz"

Kommentar von MasterSnoopy ,

cool ^^. kennst du ein gutes, kostenloses online C++ Buch ?

Kommentar von softie1962 ,

Als Referenz nutze ich oft

http://de.cppreference.com/w/

und

http://www.cplusplus.com/reference/

Ansonsten findest du viele Antworten bei

stackoverflow.com

Kommentar von MasterSnoopy ,

Wierd , wenn ich die executable per terminal ausführe , dann ist der output "Test" und funktionier somit, weshalb will das denn in keiner ide laufen?

Kommentar von softie1962 ,

Da wirst du dich noch mal ein wenig mit deiner IDE auseinander setzen müssen.Möglicherweise stimmen ja die Pfade zu den Includeverzeichnissen nicht, oder du musst noch irgendwas bei dem Projekt angeben

Kommentar von MasterSnoopy ,

Hat mit Netbeans, eclipse und CodeBlocks bei windows immer ohne (große) Probleme einfach so funktioniert , aber hier nicht(bei allen 3).Kann das wirklich an jeder IDE liegen , oder könnte ich eventuell einen falschen compiler oder ähnliches installiert ?(je mehr ich schreibe , desto noobiger wirke ich , oder ? xD)

Kommentar von softie1962 ,

Wie heißt eingentlich dein source file?

Kommentar von MasterSnoopy ,

main.cpp , wenn du das meinst

Kommentar von softie1962 ,

ok, das meinte ich, wegen der Endung. Ist ok so

Kommentar von MasterSnoopy ,

Hätte noch eine zweite Frage , wenn du erlaubst (kannst du auch gerne als normale Antwort schreiben , um Punkte zu farmen ;))
Wenn ich (ohne IDE , nur mit Terminal und g++ /c++) zum Beispiel etwas wie SDL nutzen möchte , wie genau stelle ich das nur mit den gedownloadeten Dateien von SDL , gedit , g++ und dem Terminal an ?

Kommentar von softie1962 ,

du wirst einen Pfad zu den Headerdateien angeben müssen und beim Linken die Librarydateien (*.so) sowie den Pfad dahin.

g++ -? hilft dir wegen der Optionen

Kommentar von MasterSnoopy ,

vielen Dank :)

Kommentar von softie1962 ,

https://gcc.gnu.org/onlinedocs/gcc-3.0/gcc_3.html
hier gibts auch Hilfe. Die Compiler sind Optionenmonster :-)

Kommentar von MasterSnoopy ,

Hey , tut mir leid, dass ich erneut störe , aber ich bekomme das mit den Bibliotheken nicht hin.
Habe jetzt für mich entschieden, dass ich keine IDE benutzen möchte , da die sehr oft extrem unnötig kompliziert sind und möchte daher ausschließlich einen Editor und einen Compiler verwenden.
Könntest du mir eventuell eine Step-by-Step-Anleitung schrieben wie man eine Library (zum Beispiel Qt oder GTK(am besten wäre Qt))verwenden kann , damit ich diese Anleitung für spätere Vorhaben als Leitfaden benutzen kann?

Keine passende Antwort gefunden?

Fragen Sie die Community