c programm mit speziellen Bibliotheken kompilieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
elmar
Beiträge: 4
Registriert: 21.09.2004 12:04:59

c programm mit speziellen Bibliotheken kompilieren

Beitrag von elmar » 21.09.2004 12:36:14

:( Solange ich in meinen C-Programmen nur Standard-Bibliotheken verwende, klappt alles wunderbar. Sobald ich andere einbinden will (z.B. <math.h>), will make das Programm nicht mehr kompilieren. "no rule to make target 'math.h' needed by 'prog.c'". Das makefile dazu sieht folgendermassen aus:

prog: prog.c
cc prog.c
prog.c: math.h

Mein Mitbewohner, Profiprogrammierer, weiss auch nicht weiter. Woran kann das liegen?

Benutzeravatar
eagle
Beiträge: 2282
Registriert: 05.11.2002 11:20:53
Wohnort: Berlin

Beitrag von eagle » 21.09.2004 12:42:28

Das math.h ist im Makefile dorf fehl am Platz, das wird an dieser Stelle nicht benoetigt. Wichtig ist das du beim Kompilieren den entsprechenden Include Pfad mit der Option -I angibst.

Code: Alles auswählen

prog: prog.c
cc -I /usr/inlcude prog.c
eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams

Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Beitrag von suntsu » 21.09.2004 13:45:50

Titel geändert. Bitte nächstes mal einen sprechenderen wählen.

gruss
manuel

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 21.09.2004 16:49:29

eagle hat geschrieben:Das math.h ist im Makefile dorf fehl am Platz, das wird an dieser Stelle nicht benoetigt. Wichtig ist das du beim Kompilieren den entsprechenden Include Pfad mit der Option -I angibst.
Wobei /usr/include sowieso standardmäßig durchsucht wird.

BTW: Es wundert mich, dass der Profiprogrammierer sich nicht mit Make auskennt. Wahrscheinlich MSVC verwöhnt :twisted:

Benutzeravatar
se8i
Beiträge: 1017
Registriert: 08.11.2002 17:02:20
Wohnort: nähe Karlsruhe
Kontaktdaten:

Beitrag von se8i » 21.09.2004 17:53:44

Joghurt hat geschrieben:BTW: Es wundert mich, dass der Profiprogrammierer sich nicht mit Make auskennt. Wahrscheinlich MSVC verwöhnt :twisted:
Profiprogrammierer heißt ja nicht, daß man gut programmieren kann, man verdient eben sein Geld damit... alleine die Bezeichnung Profiprogrammierer läßt mich schon stutzig werden (in etwa so wie der Computerprofi von nebenan, der Windows installieren kann ;) )

elmar
Beiträge: 4
Registriert: 21.09.2004 12:04:59

Beitrag von elmar » 23.09.2004 13:45:01

:( Eagles makefile führt zu folgender Fehlermeldung:

undefined reference to 'sin'

Könnte es sein, dass der Hund ganz woanderst begraben liegt?

Benutzeravatar
eagle
Beiträge: 2282
Registriert: 05.11.2002 11:20:53
Wohnort: Berlin

Beitrag von eagle » 23.09.2004 13:55:48

Ich denke du musst dein Binary gegen die math Library linken.

Code: Alles auswählen

prog: prog.c
cc -lm prog.c
eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams

elmar
Beiträge: 4
Registriert: 21.09.2004 12:04:59

Beitrag von elmar » 23.09.2004 14:28:35

Nun scheint make das Programm zu kompilieren (keine Fehlermeldung mehr), aber es erstellt kein ausführbares binary, auf jeden Fall kann ich nirgendwo eins finden.

Benutzeravatar
eagle
Beiträge: 2282
Registriert: 05.11.2002 11:20:53
Wohnort: Berlin

Beitrag von eagle » 23.09.2004 14:33:42

Du musst mal nach einer Datei a.out suchen. Wenn du dem Binary einen richtigen Namen geben willst, dann benutze die Option -o.

Code: Alles auswählen

prog: prog.c
cc -lm prog.c  -o prog
eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams

elmar
Beiträge: 4
Registriert: 21.09.2004 12:04:59

Beitrag von elmar » 23.09.2004 14:50:02

:D :hail: Es funktioniert!!! Vielen Dank.

Antworten