Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: Compiler- und IDE-Forum ::  Ausführen des früher kompelierten Programms  
Gehen Sie zu Seite 1, 2  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
mariia.fortova
Mitglied

Benutzerprofil
Anmeldungsdatum: 10.11.2017
Beiträge: 4
Beitrag mariia.fortova Mitglied 21:35:30 10.11.2017   Titel:   Ausführen des früher kompelierten Programms            Zitieren

Hallo zusammen.
Ich bin ganz neu in Programmierung, deswegen stelle ich häufig ganz dumme Fragen, aber trotzdem:

Mittels Putty greife ich auf einen entfernten Linux Rechner zu, dann kann ich die Quelldateien kompilieren und ausführen, aber beim Ausführen der schon direkt am Linux Rechner kompilierten Dateien bekomme ich eine Fehler-Meldung, und zwar: -"bash: ./Dateiname: Ungültiges Argument"
Genauso geht es andersrum: Was ich quasi von Windows mittels Putty in der Linux Konsole kompiliere, kann ich das am Linux Rechner nicht ausführen_ also muss neu kompilieren..

Wo liegt mein Fehler und wie lässt der irgendwie beheben?

Danke für die Antwort im Voraus)
P.S. Sorry für mögliche Fehler: bin nicht Deutsche.


Zuletzt bearbeitet von mariia.fortova am 21:38:03 10.11.2017, insgesamt 1-mal bearbeitet
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 4692
Beitrag Th69 Mitglied 09:42:45 11.11.2017   Titel:              Zitieren

Könnte es sein, daß du für eine falsche Plattform kompilierst, wie in What does “Invalid argument” mean in Solaris??
Mit welchem Befehl kompilierst du denn?
mariia.fortova
Mitglied

Benutzerprofil
Anmeldungsdatum: 10.11.2017
Beiträge: 4
Beitrag mariia.fortova Mitglied 10:10:14 11.11.2017   Titel:              Zitieren

g++ -Wall Quelldateiname -o Zieldateiname
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 4692
Beitrag Th69 Mitglied 12:16:22 11.11.2017   Titel:              Zitieren

Hast du dann auch die passenden Rechte für das Ausführen der Datei? Was sagt "ls -l" für die Zieldatei?
mariia.fortova
Mitglied

Benutzerprofil
Anmeldungsdatum: 10.11.2017
Beiträge: 4
Beitrag mariia.fortova Mitglied 07:01:39 13.11.2017   Titel:              Zitieren

ja, ich habe alle Rechte, für beide Dateien (egal wo kompilierten):
-rwxr-xr-x 1 mfortova student 10K Nov 6 10:29 Pr_QGleichung*
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 4692
Beitrag Th69 Mitglied 10:13:03 13.11.2017   Titel:              Zitieren

Was gibt
Code:
file ./PR_QGleichung
aus?
Ist das wirklich "executable"?
s.a. How to Determine the File Type of a File Using Linux oder check if a file is executable (ich hoffe, du kannst englisch?)

Und welche Dateiendung hat deine Quelldatei (die du dem g++ übergibst)?
Sollte bei g++ ja ".cc" oder ".cpp" haben (evtl. hat dieser einfach nur eine Objektdatei anstatt einer Anwendung erstellt).

Edit: du kannst auch explizit mit der Option "-x" die Sprache angeben:
Code:
g++ -x c++ source -o output

s.a. g++ Options: Options Controlling the Kind of Output


Zuletzt bearbeitet von Th69 am 10:22:38 13.11.2017, insgesamt 2-mal bearbeitet
mariia.fortova
Mitglied

Benutzerprofil
Anmeldungsdatum: 10.11.2017
Beiträge: 4
Beitrag mariia.fortova Mitglied 21:21:08 14.11.2017   Titel:              Zitieren

Für die direkt am Linux Rechner kompil.Datei:

C++:
Pr_QGleichung:  ELF 64-bit LSB executable AMD64 Version 1, dynamically linked, not stripped, no debugging information available


Für die über Putty kompil.Datei:

C++:
Pr_QGleichung1: ELF 32-bit MSB executable SPARC32PLUS Version 1, V8+ Required, dynamically linked, not stripped, no debugging information available


P.S ich hab 64-bit Windows Version.

Ja, die Quelldatei hat entsprechende Endung, und zwar heißt sie Pr_QGleichung.cpp

Vllt muss es so sein, aber dann verstehe ich nicht wirklich, was Putty macht... Beim Ausführen bin ich ja dann nicht mehr im Linux-system, oder? :confused:
Gast3
Unregistrierter




Beitrag Gast3 Unregistrierter 08:56:18 15.11.2017   Titel:              Zitieren

SPARC32PLUS ??? das kann auch nicht laufen muss genau so AMD64 sein

Ist definitiv falsch - über Putty wird der falsche Kompiler verwendet - moeglicherweise bei SSH umgebogen auf den falschen
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 4692
Beitrag Th69 Mitglied 10:16:00 15.11.2017   Titel:              Zitieren

Das hatte ich ja gleich schon in meinem ersten Beitrag vermutet. ;-)

Probiere dann mal "-march=native" als g++-Option: x86 Options

Ansonsten auch mal "uname -a" über putty ausgeben lassen, s.a. How to check OS and version using a Linux command.


Zuletzt bearbeitet von Th69 am 10:31:01 15.11.2017, insgesamt 3-mal bearbeitet
Tobiking2
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.04.2009
Beiträge: 1007
Beitrag Tobiking2 Mitglied 18:54:53 15.11.2017   Titel:              Zitieren

So ich das verstehe ist der Server ein Sparc System und der lokale Rechner ein x86-64 System. Die Executables laufen dann natürlich nur auf dem System, auf dem sie gebaut wurden, da es unterschiedliche Architekturen sind.

Da würde nur Cross-Compiling helfen. Cross-Compiling ist allerdings nicht unbedingt trivial. Bei Sparc kenne ich mich da auch nicht aus.
C++ Forum :: Compiler- und IDE-Forum ::  Ausführen des früher kompelierten Programms  
Gehen Sie zu Seite 1, 2  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.