Forum:  Programmieren
Thema: C: Code compilieren
Themen-Übersicht
Delastelle
Senior
Dabei seit: 17.11.2006
Mitteilungen: 1377
Aus:
Themenstart: 2019-04-14 00:43

Hallo Leute!

Ich wollte C-Code compilieren und Testen.
Das funkitoniert aber nicht richtig.
Der Code ist hier:
www.math.uwaterloo.ca/~bico/jobshop/
z.B. das Programm dumbo.c
inkl.jobdefs.h.

Compileroptionen mit einem gcc-Compiler unter Windows 7:
c++ -o Dumbo Dumbo.c

Oder muss ich für dieses ältere C-Programm eine andere Compilereinstellung nehmen?
Es existiert auch noch ein "Makefile".

Ich habe längere Zeit nicht mit C/C++ gearbeitet.

Viele Grüße
Ronald


zippy
Senior
Dabei seit: 24.10.2018
Mitteilungen: 721
Aus:
Beitrag No.1, eingetragen 2019-04-14 01:07

2019-04-14 00:43 - Delastelle im Themenstart schreibt:
Es existiert auch noch ein "Makefile".

Dieses Makefile sagt dir doch genau, was du tun sollst:
make -n
cc -O -c -o dumbo.o dumbo.c
cc -O -c -o jobsort.o jobsort.c
cc -O -c -o preempt.o preempt.c
cc -O -c -o lbound.o lbound.c
cc -O -c -o getprob.o getprob.c
cc -O -c -o printp.o printp.c
cc -O -c -o init.o init.c
cc -O -c -o edges.o edges.c
cc -O -o dumbo dumbo.o jobsort.o preempt.o lbound.o getprob.o printp.o init.o edges.o
cc -O -c -o slug.o slug.c
cc -O -c -o edge.o edge.c
cc -O -c -o edgesub.o edgesub.c
cc -O -c -o boteval.o boteval.c
cc -O -o slug slug.o jobsort.o preempt.o lbound.o printp.o init.o edges.o edge.o edgesub.o boteval.o
cc -O -c -o edgemain.o edgemain.c
cc -O -o edge edgemain.o edgesub.o edge.o jobsort.o preempt.o lbound.o printp.o init.o edges.o
cc -O -c -o onemain.o onemain.c
cc -O -c -o onemach.o onemach.c
cc -O -o onemach onemain.o onemach.o 
cc -O -c -o botmain.o botmain.c
cc -O -c -o bottle.o bottle.c
cc -O -o bottle botmain.o bottle.o boteval.o onemach.o -lm


Delastelle
Senior
Dabei seit: 17.11.2006
Mitteilungen: 1377
Aus:
Beitrag No.2, vom Themenstarter, eingetragen 2019-04-15 00:45

Hallo,

ich habe jetzt den Befehl
Kommandozeile
make -n > aaa.bat
verwendet.
Nach Eingabe
aaa erscheint u.a.


Die C-Programme werden nicht richtig übersetzt.
Es erscheinen keine "*.o" Files.

Viele Grüße
Ronald


rlk
Senior
Dabei seit: 16.03.2007
Mitteilungen: 10575
Aus: Wien
Beitrag No.3, eingetragen 2019-04-15 01:15

Hallo Ronald,
die Programme sind in C, nicht in C++ geschrieben, Du musst daher den C-Compiler cc oder gcc verwenden. Der Compiler g++ erwartet C++ Code.

Unter Linux werden die Programme übersetzt, es kommen aber mehrere Seiten von Warnungen, weil die Programme in einem alten C-Dialekt geschrieben sind.

Servus,
Roland


Delastelle
Senior
Dabei seit: 17.11.2006
Mitteilungen: 1377
Aus:
Beitrag No.4, vom Themenstarter, eingetragen 2019-04-15 01:20

Hallo,
2019-04-15 01:15 - rlk in Beitrag No. 3 schreibt:
Unter Linux werden die Programme übersetzt, es kommen aber mehrere Seiten von Warnungen, weil die Programme in einem alten C-Dialekt geschrieben sind.
Wieder was gelernt!
Danke an zippy und rlk!

Viele Grüße
Ronald


Delastelle
Senior
Dabei seit: 17.11.2006
Mitteilungen: 1377
Aus:
Beitrag No.5, vom Themenstarter, eingetragen 2019-04-15 21:50

Hallo rlk!

Ich habe jetzt vom installierten Compiler den Befehl "gcc" benutzt.
Dabei erscheint aber auch ein Fehler.

Entweder ist der Compiler ungeeignet.
Oder ich benutze ihn falsch.
Hilfeseiten zu "gcc" habe ich nicht gefunden.

Viele Grüße
Ronald


rlk
Senior
Dabei seit: 16.03.2007
Mitteilungen: 10575
Aus: Wien
Beitrag No.6, eingetragen 2019-04-16 00:34

Hallo Ronald,
woher hast Du den Compiler? Hast Du schon versucht, ein einfaches C-Programm damit zu übersetzen?
Dokumente zu verschiedenen Versionen der GNU Compiler Collection findest Du auf
gcc.gnu.org/onlinedocs/

Servus,
Roland


Delastelle
Senior
Dabei seit: 17.11.2006
Mitteilungen: 1377
Aus:
Beitrag No.7, vom Themenstarter, eingetragen 2019-04-16 00:50

Hallo rlk!

Ich habe den "TDM-GCC Compiler/ GCC 5 Series/ MinGW 32-bit Edition" installiert.
Da gibt es auch eine GCC.exe.
Ein Hello World Programm konnte ich mit "c++.exe" compilieren.
Kommandozeile
c++ -o Hello Hello.c
Hello
geht.

Aber
Kommandozeile
gcc -o Hello Hello.c
geht nicht - selber Fehler - "No such file or directory".

Eventuell muss ich mal einen anderen Compiler versuchen...

Viele Grüße
Ronald


majoka
Senior
Dabei seit: 25.02.2014
Mitteilungen: 775
Aus:
Beitrag No.8, eingetragen 2019-04-16 08:50

Es scheint, als ob Du mit der Kommandozeile immer in dem Installationsordner des Compilers hantierst. Liegt dort die Datei "Hello.c"?

Falls nein, versuche es mit
Kommandozeile
gcc -o Hello D:\DeinPfad\DeinOrdner\Hello.c

Es wäre aber sinnvoller, wenn Du mit der Eingabeaufforderung in den entsprechenden Ordner wechselst.

Ich habe mir die Dateien von Jobshop heruntergeladen. Nach dem Entpacken musste ich nur im Makefile in Zeile 8 die Compilereinstellung ändern
Makefile
CC=gcc

und danach konnte ich die Dateien einfach mit
Kommandozeile
make

unter Windows kompilieren.
 


Benutzertheo
Aktiv
Dabei seit: 08.07.2018
Mitteilungen: 27
Aus:
Beitrag No.9, eingetragen 2019-04-16 09:34

Hallo,

ich denke für den Fehler braucht man die richtige Compiler Version.

Grüße
Benutzer


DerEinfaeltige
Senior
Dabei seit: 11.02.2015
Mitteilungen: 2139
Aus:
Beitrag No.10, eingetragen 2019-04-16 10:14

Wie Majoka schreibt hängt der Fehler mit hoher Wahrscheinlichkeit einfach in der Ordnerstruktur. Der Compiler findet die Dateien nicht.

Entweder weil man aus dem falschen Verzeichnis heraus zu kompilieren versucht (das scheint hier der Fall zu sein) oder weil die Tool-Chain nicht korrekt installiert bzw. in die Umgebungsvariablen eingebunden wurde.

Bei einer falschen Compilerversion wären andere Fehlermeldungen zu erwarten als "No such file or directory".


Delastelle
Senior
Dabei seit: 17.11.2006
Mitteilungen: 1377
Aus:
Beitrag No.11, vom Themenstarter, eingetragen 2019-04-17 23:41

Hallo,

ich bin jetzt mal in ein anderes Verzeichnis mit meinen Dateien gegangen:
D:\C++\PRG
und habe dort
Kommandozeile
make
aufgerufen. Der Compiler gcc läuft wohl - jetzt habe ich nur eine
andere Fehlermeldung:


Viele Grüße
Ronald

Edit: eventuell kann ich auch die C-Files in C++-Files konvertieren.
Muss ich mal sehen ob so was geht.


Ex_Senior
Neu
Dabei seit: 00.00.0000
Mitteilungen: 0
Aus:
Beitrag No.12, eingetragen 2019-04-17 23:56

Hallo Delastelle,

ich habe den Eindruck, dass der Compiler irgendwo noch alte DOS-Namen verwendet. Falls eines der beteiligten Verzeichnisse mehr als 8 Buchstaben  hat, könnte dieses die Ursache sein.


zippy
Senior
Dabei seit: 24.10.2018
Mitteilungen: 721
Aus:
Beitrag No.13, eingetragen 2019-04-18 15:23

2019-04-17 23:41 - Delastelle in Beitrag No. 11 schreibt:
Edit: eventuell kann ich auch die C-Files in C++-Files konvertieren.
Muss ich mal sehen ob so was geht.

Wäre es nicht sinnvoller, wenn du dir einen funktionsfähigen C-Compiler installierst?

Ich habe gerade mal einen Versuch mit dem MinGW-Cross-Compiler unter Cygwin gemacht (Aufruf: make CC='/usr/bin/x86_64-w64-mingw32-gcc -O2 -w'), und damit erhalte ich ohne Probleme die fünf (unabhängig von Cygwin) ausführbaren Programme.


Delastelle
Senior
Dabei seit: 17.11.2006
Mitteilungen: 1377
Aus:
Beitrag No.14, vom Themenstarter, eingetragen 2019-04-18 19:34

Hallo,

ich habe jetzt im Makefile:
Makefile
CC=mingw32-gcc
gesetzt und es geht zu compilieren.
Hurra!

Viele Grüße
Ronald




Dieses Forumbeitrag kommt von Matroids Matheplanet
https://https://matheplanet.de

Die URL für dieses Forum-Thema ist:
https://https://matheplanet.de/default3.html?topic=241250=5101
Druckdatum: 2019-11-17 10:28