Как добавить pkg-config в Makefile?

Мой Makefile выглядит так:

all:main.cpp
g++ -I../../DrAPI/ -Wl,--no-as-needed -ldl -lrt -o SampleApp01 $<
clean:
rm -f SampleApp01

вот что я бы сделал без Makefile:

gcc main.cpp -o test $(pkg-config --cflags --libs libmongoc-1.0)

теперь из-за импорта DrAPI я должен использовать Makefile для включения этого API, но я потерял бы libmongoc-1.0 без pkg-config. В таком случае, как мне добавить $ (pkg-config —cflags —libs libmongoc-1.0) в мой Makefile, чтобы он работал?

0

Решение


all:main.cpp
g++ -I../../DrAPI/ `pkg-config --cflags --libs libmongoc-1.0` -Wl,--no-as-needed -ldl -lrt -o SampleApp01 $<
clean:
rm -f SampleApp01

1

Другие решения

Когда я компилирую свой код C с использованием библиотеки GTK +, я создаю переменную с именем GTK и установите его pkg-config как это:

GTK = `pkg-config --cflags --libs gtk+-3.0`

Компиляция кода с использованием:

$(CC) $(CFLAGS) $(OBJECTS) $(GTK) -o $@

куда CC = gcc, CFLAGS некоторые другие флаги компилятора (например, -I ../../DrAPI) а также OBJECTS являются исходными и объектными файлами.

Таким образом, ваш make-файл может выглядеть так:

DRAPI = `pkg-config --cflags --libs libmongoc-1.0`

all:main.cpp
g++ -I../../DrAPI/ -Wl,--no-as-needed -ldl -lrt $(DRAPI) -o SampleApp01 $<
clean:
rm -f SampleApp01

РЕДАКТИРОВАТЬЗабудь об этом. Использовать CFLAGS переменная и магазин pkg-config --cflags [some library, eg. gtk+-3.0] и LIBS переменная для хранения pkg-config --libs [some library again], Теперь ваш make-файл может выглядеть так:

CFLAGS = -I../../DrAPI/ -Wl,--no-as-needed -ldl -lrt `pkg-config --cflags libmongoc-1.0`
LIBS = `pkg-config --libs libmongoc-1.0`

all:main.cpp
g++ $(CFLAGS) $(LIBS) -o SampleApp01 $<
clean:
rm -f SampleApp01

Надеюсь это поможет!

0

По вопросам рекламы [email protected]