programing

만들기에서 pkg-config를 사용하는 방법

testmans 2023. 10. 27. 21:48
반응형

만들기에서 pkg-config를 사용하는 방법

가장 간단한 GTK 프로그램을 컴파일하고 싶습니다.명령줄을 사용하여 컴파일할 수 있습니다.

gcc $(pkg-config --cflags --libs gtk+-3.0)  main.c -o main.o

그러나 만들기를 사용하면 작동하지 않습니다.

CFLAGS=-g -Wall -Wextra $(pkg-config --cflags)
LDFLAGS=$(pkg-config --libs gtk+-3.0)
CC=gcc

SOURCES=$(wildcard *.c)
EXECUTABLES=$(patsubst %.c,%,$(SOURCES))

all: $(EXECUTABLES)

내게 이런 말이 있습니다.

gcc -g -Wall -Wextra    -c -o main.o main.c
main.c:1:21: fatal error: gtk/gtk.h: No such file or directory
 #include <gtk/gtk.h>
                     ^
compilation terminated.
<builtin>: recipe for target 'main.o' failed
make: *** [main.o] Error 1

Make file에서 $(pkg-config --cflags --libs gtk+-3.0)을 어디에 붙여서 컴파일하면 됩니까?

당신의 친절한 도움에 미리 감사드립니다.

두 가지 문제가 있습니다.

먼저 당신의CFLAGS행이 틀렸습니다: 말하는 것을 잊으셨습니다.gtk+-3.0에서pkg-config부분적으로, 그래서pkg-config대신 오류를 내뱉습니다.

CFLAGS=-g -Wall -Wextra $(pkg-config --cflags gtk+-3.0)

둘째, 그리고 더 중요한 건$(...)가변 대체를 위해 make 자체에서 가로채는 것입니다.사실, 여러분은 이미 이것을 본 적이 있습니다.

SOURCES=$(wildcard *.c)
EXECUTABLES=$(patsubst %.c,%,$(SOURCES))

all: $(EXECUTABLES)

모두가 만드는 겁니다.

당신이 할 수 있는 두 가지 일이 있습니다.

일단은.`...`대신에, 똑같은 일을 합니다 ($(...)is newer shell syntax).

CFLAGS=-g -Wall -Wextra `pkg-config --cflags gtk+-3.0`
LDFLAGS=`pkg-config --libs gtk+-3.0`

둘째, 당신이 GNU make를 사용하는 것처럼 보이기 때문에, 당신은 사용할 수 있습니다.shell위에 링크된 Basile Starynkevitch의 답변에 나타난 대체 명령:

CFLAGS=-g -Wall -Wextra $(shell pkg-config --cflags gtk+-3.0)
LDFLAGS=$(shell pkg-config --libs gtk+-3.0)

언급URL : https://stackoverflow.com/questions/28533059/how-to-use-pkg-config-in-make

반응형