源码编译Falco时报错
/home/jack/code/falco/falco/userspace/engine/rule_reader.cpp: In function ‘rule_loader::context yaml_get_context(const string&, const std::vector<YAML::Node>&, std::vector<YAML::Node>::iterator, YAML::iterator)’:
/home/jack/code/falco/falco/userspace/engine/rule_reader.cpp:31:21: error: ‘class YAML::Node’ has no member named ‘Mark’
size_t from = item.Mark().pos - 2;
^~~~
/home/jack/code/falco/falco/userspace/engine/rule_reader.cpp:36:14: error: ‘struct YAML::detail::iterator_value’ has no member named ‘Mark’
to = node->Mark().pos - 2;
^~~~
/home/jack/code/falco/falco/userspace/engine/rule_reader.cpp:41:13: error: ‘class YAML::Node’ has no member named ‘Mark’
to = doc->Mark().pos - 4;
^~~~
At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-class-memaccess’
userspace/engine/CMakeFiles/falco_engine.dir/build.make:215: recipe for target 'userspace/engine/CMakeFiles/falco_engine.dir/rule_reader.cpp.o' failed
make[3]: *** [userspace/engine/CMakeFiles/falco_engine.dir/rule_reader.cpp.o] Error 1
CMakeFiles/Makefile2:1373: recipe for target 'userspace/engine/CMakeFiles/falco_engine.dir/all' failed
make[2]: *** [userspace/engine/CMakeFiles/falco_engine.dir/all] Error 2
CMakeFiles/Makefile2:1412: recipe for target 'userspace/falco/CMakeFiles/falco.dir/rule' failed
make[1]: *** [userspace/falco/CMakeFiles/falco.dir/rule] Error 2
Makefile:631: recipe for target 'falco' failed
make: *** [falco] Error 2
已经执行了如下语句:
apt install libssl-dev libc-ares-dev libprotobuf-dev protobuf-compiler libjq-dev libgrpc++-dev protobuf-compiler-grpc libcurl4-openssl-dev libyaml-cpp-dev
还是报错,已经安装了libyaml-cpp-dev。没有效果,
https://falco.org/docs/getting-started/source/官网上有这么一句:
If you are on Ubuntu 18.04, instead of cmake ..
do cmake -DUSE_BUNDLED_DEPS=ON ..
.
本人的系统刚好是Ubuntu 18.04.2 LTS \n \l
所以执行
cmake -DUSE_BUNDLED_DEPS=ON ..
即可。
它会下载源码进行编译安装:
-- Downloading...
dst='/home/jack/code/falco/falco/build/yamlcpp-prefix/src/yaml-cpp-0.6.2.tar.gz'
timeout='none'
inactivity timeout='none'
-- Using src='https://github.com/jbeder/yaml-cpp/archive/yaml-cpp-0.6.2.tar.gz'
-- [download 100% complete]