Hogyan kell Ubuntuban make-el C programot lefordítani?
Ubuntu 16.10-em van, még viszonylag új vagyok, nem tudom hogyan mukodik teljesen.
Adott egy program, legyen hello.c . Azt tudom, hogy így le lehet fordítani: gcc -std=c11 -Wall -Werror -lm hello.c -o hello , s így már el lehet indítani.
De mi mindent kell beállítani, hogy elég legyen make hello -val lefordítani? Próbáltam már ezt:
export CFLAGS="-std=c11 -Wall -Werror"
export LDLIBS="-lm"
export CC=gcc
Ezután, mikor próbáltam make-el, ezt írta ki:
gcc "-std=c11 -Wall -Werror" hello.c "-lm" -o hello
gcc: error: unrecognized command line option ‘-std=c11 -Wall -Werror’
<builtin>: recipe for target 'hello' failed
make: *** [guess] Error 1
Állítólag a bash-ben kéne valamit beírni, de a bash-ba bele sem enged menni.
A megoldást elore is koszonom, sokat segítene (:
A Makefile nem shellscript, így export command sincs benne.
Hááát én nem tudom, hogy egy kezdő programozó milyen programokat írkál, de aki tényleg szokott programozni is, az is ritkán használ fél-km hosszú paraméterlistát egy C program fordításához...
gcc hello.c -o hello.exe
MAKE-l meg a következő:
1.: létherhozol az adott könyvtárban egy "makefile" állományt...
2.: ...amibe belíirod az első sorba, hogy "all:"...
3.: ...a következőbe pedig nyomsz egy TAB-ulátor-t és beírod a fenti sort: "gcc hello.c -o hello.exe"
Jaaa bocs és
4.: elmented a "makefile"-t és bezárod...
5.: végül beírod parancssorba: make (+enter)
# Az aláhúzás helyére tab-ot tegyél
all: hello
hello: hello.o
__gcc hello.o -lm -o hello
hello.o: hello c
__gcc -c -std=c11 -Wall -Werror hello.c
Elgépeltem, kihagytam egy pontot, bocsi:
hello.o: hello.c
vagy esetleg:
hello.o: hello.c hello.h
és akkor fordítás előtt ellenőrzi, hogy a header fájl is megvan-e.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!