Avatar billede Slettet bruger
13. marts 2006 - 16:36 Der er 7 kommentarer og
1 løsning

Hvordan kompiler jeg i Suse10 med "make"

Jeg har lavet et simpelt c program og skal kompilere dette med "make" og skriver derfor "make -f testprogram.c" men får en fejl

Programmet set ud som følger:

#include <stdio.h>
main()
{
  printf("Testprogram\n");
}


kompilere med make -f testprogram

og får disse fejl

warning: NUL caracter seen; rest fo line ignored
***missing seperator. Stop.

hvad er min fejl!?
Avatar billede bertelbrander Novice
13. marts 2006 - 16:40 #1
Hvis du vil bruge make skal du lave en makefile, men hvis det blot er en enkelt fil så brug gcc eller g++ direkte:

gcc testprogram.c -o testprogram
Avatar billede bertelbrander Novice
13. marts 2006 - 16:44 #2
Hvis du vil bruge make kan du lave en makefile (f.ex. kaldet testprogram.mak) der ser sådan ud:
testprogram: testprogram.c
    gcc testprogram.c -o testprogram

Så kan du bygge med:
make -f testprogram.mak

Du kan også kalde makefilen for makefile, så kan du oversætte ved blot at skrive make.
Avatar billede bertelbrander Novice
13. marts 2006 - 16:46 #3
Og husk at der skal være en rigtig tabulator karakter i starten af anden linie i makefilen.
Avatar billede Slettet bruger
14. marts 2006 - 08:19 #4
Jeg skal bruge "make"

Vil det sige at det ikke er muligt i sig selv at lave en eksekverbar fil blot vha en .c fil og make programmet (make)?
Avatar billede bertelbrander Novice
14. marts 2006 - 19:34 #5
Du skal bruge en compiler for at oversætte c-source til et program.
make er ikke en compiler.
Hvorfor SKAL du bruge make?
Avatar billede Slettet bruger
15. marts 2006 - 08:42 #6
Så er make ikke så vigtig.... :o)

Hvad er make da for et program da?

Husk at lave et svar :)
Avatar billede bertelbrander Novice
15. marts 2006 - 20:30 #7
Make er et program til at kalde compileren og dermed bygge en applikation.

Hvis du ser på mit eksempel fra før:

testprogram: testprogram.c
    gcc testprogram.c -o testprogram

Så tolker make det som:
Hvis ikke testprogram findes, eller testprogram.c er nyere end testprogram vil den udføre gcc ...

Konstruktionen kan siges at være:
target: afhængiheder
  kommando til at lave target fra afhængiheder

Det smarte i det er at hvis man f.ex. har 1234 c og c++ filer behøver man kun at kompilere dem der er ændret eller som inkluderer headerfiler der er ændret.

Jeg samler ikke på point.
Avatar billede Slettet bruger
30. marts 2006 - 15:42 #8
Takker for hjælpen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester