c programm mit speziellen Bibliotheken kompilieren
c programm mit speziellen Bibliotheken kompilieren
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?
prog: prog.c
cc prog.c
prog.c: math.h
Mein Mitbewohner, Profiprogrammierer, weiss auch nicht weiter. Woran kann das liegen?
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.
eagle
Code: Alles auswählen
prog: prog.c
cc -I /usr/inlcude prog.c
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams
Wobei /usr/include sowieso standardmäßig durchsucht wird.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.
BTW: Es wundert mich, dass der Profiprogrammierer sich nicht mit Make auskennt. Wahrscheinlich MSVC verwöhnt
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 )Joghurt hat geschrieben:BTW: Es wundert mich, dass der Profiprogrammierer sich nicht mit Make auskennt. Wahrscheinlich MSVC verwöhnt
Ich denke du musst dein Binary gegen die math Library linken.
eagle
Code: Alles auswählen
prog: prog.c
cc -lm prog.c
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams
Du musst mal nach einer Datei a.out suchen. Wenn du dem Binary einen richtigen Namen geben willst, dann benutze die Option -o.
eagle
Code: Alles auswählen
prog: prog.c
cc -lm prog.c -o prog
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams