Невозможно собрать библиотеку ua-parser c ++ (uap-cpp) - PullRequest
0 голосов
/ 10 октября 2018

Я обнаружил эту библиотеку UserAgent Parser для C ++, которая мне показалась очень полезной.(https://github.com/ua-parser/uap-cpp)

Теперь для сборки этой библиотеки мне нужны библиотеки yaml-cpp и boost, что я уже сделал в своей системе. Теперь, когда я запускаю

make uaparser_cpp

в клонированной папке. Я получаю следующую ошибку.

Shrays-Air:uap-cpp Shray$ make uaparser_cpp
c++ -c -std=c++0x -Wall -Werror -fPIC -g -O3 UaParser.cpp -o UaParser.o
UaParser.cpp:10:10: error: 'yaml-cpp/yaml.h' file not found with <angled> include; use "quotes" instead
#include <yaml-cpp/yaml.h>
         ^~~~~~~~~~~~~~~~~
         "yaml-cpp/yaml.h"
In file included from UaParser.cpp:10:
./yaml-cpp/yaml.h:10:10: fatal error: 'yaml-cpp/parser.h' file not found
#include "yaml-cpp/parser.h"
         ^
2 errors generated.
make: *** [UaParser.o] Error 1
Shrays-Air:uap-cpp Shray$ $

Makefile состоит из

ifndef LDFLAGS
    LDFLAGS= -lboost_regex -lyaml-cpp 
endif
ifndef CXXFLAGS
    CXXFLAGS=-std=c++0x -Wall -Werror -fPIC -g -O3
endif
%.o: %.cpp
    $(CXX) -c $(CXXFLAGS) $*.cpp -o $*.o
    @$(CXX) -MM $(CXXFLAGS) $*.cpp > $*.d
uaparser_cpp: libuaparser_cpp.a
libuaparser_cpp.a: UaParser.o
    ar rcs $@ $^
libuaparser_cpp.so: UaParser.o
    $(LD) $< -shared $(LDFLAGS) -o $@
UaParserTest: libuaparser_cpp.a UaParserTest.o
    $(CXX) $^ -o $@ libuaparser_cpp.a $(LDFLAGS) -lgtest -lpthread
test: UaParserTest
    ./UaParserTest
# clean everything generated
clean:
    find . -name "*.o" -exec rm -rf {} \; # clean up object files
    find . -name "*.d" -exec rm -rf {} \; # clean up dependencies
    rm -f UaParserTest *.a *.so
# automatically include the generated *.d dependency make targets
# that are created from the wildcard %.o build target above
-include $(OBJS:.o=.d)

Можете ли вы помочь мне, как мнеиспользуйте make-файл и какие изменения я должен внести в него, чтобы правильно связать yaml-cpp и нужную библиотеку boost с моей библиотекой uap-cpp. Я только начинающий и никогда раньше не использовал make. Спасибо.:)

Редактировать 1: добавлено это в мой файл make.Но ничего не изменилось.Это все та же ошибка.Я включил скриншоты в каталог также. Каталог Yaml Каталог Uap-cpp

ifndef LDFLAGS
    LDFLAGS= -L /Users/Desktop/boost_1_68_0/stage/lib/ -llibboost_regex.a -L/Users/Shray/Desktop/script/yaml-cpp/  -lboost_regex -lyaml-cpp 
endif
ifndef CPPFLAGS
    CPPFLAGS = -I/Users/Shray/Desktop/script/yaml-cpp/include/  -I/Users/Shray/Desktop/boost_1_68_0/
endif
...