Мой 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, чтобы он работал?
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
Когда я компилирую свой код 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
Надеюсь это поможет!