我发现了这个用于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