无法建立ua-parser C ++库(uap-cpp)

时间:2018-10-10 11:06:38

标签: makefile yaml-cpp ua-parser

我发现了这个用于C ++的UserAgent Parser库,我认为它非常有用。 (https://github.com/ua-parser/uap-cpp

现在要构建该库,我需要yaml-cpp和boost库,这已经在系统上完成了。 现在,当我运行

  

制作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)

能帮我如何使用makefile以及我应该对其进行哪些更改,以将yaml-cpp和boost库正确链接到我的uap-cpp库。 我只是一个初学者,以前从未使用过make。谢谢。 :)

编辑1:将其添加到我的make文件中。但是什么都没有改变。它仍然是相同的错误。我也将截图包括到目录中。 Yaml directory Uap-cpp directory

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

0 个答案:

没有答案