yaml :: Прекращение работы программы BadFile - PullRequest
0 голосов
/ 17 октября 2018

У меня есть сборка yaml-cpp, а затем также сделал

make install

Теперь все сделано и настроено.Теперь у меня есть файл C ++, который анализирует строку агента пользователя.Для анализа я использовал библиотеку uap-cpp из github, которая зависит от yaml-cpp.

Я запустил этот же файл c ++ на своем компьютере Mac без проблем.Но когда я запускаю тот же файл в Ubuntu (Linux), я получаю эту ошибку ниже.

cc-user-2154@CC-USER-2154:~/Desktop/cocubes/uap-cpp$ g++ example.cpp libuaparser_cpp.a -L /usr/local/lib/  -lyaml-cpp -lboost_regex -std=c++11
cc-user-2154@CC-USER-2154:~/Desktop/cocubes/uap-cpp$ ./a.out 
terminate called after throwing an instance of 'YAML::BadFile'
  what():  bad file
Aborted (core dumped)

Теперь произошла интересная вещь.Я запустил команду sudo apt-get install libyaml-cpp-dev

Теперь он выдает ошибку при компиляции.Ошибка

cc-user-2154@CC-USER-2154:~/Desktop/cocubes/uap-cpp$ g++ example.cpp libuaparser_cpp.a   -lyaml-cpp -lboost_regex -std=c++11
libuaparser_cpp.a(UaParser.o): In function `YAML::TypedBadConversion<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~TypedBadConversion()':
/home/cc-user-2154/Desktop/cocubes/yaml-cpp/include/yaml-cpp/exceptions.h:212: undefined reference to `YAML::BadConversion::~BadConversion()'
libuaparser_cpp.a(UaParser.o): In function `YAML::TypedBadConversion<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~TypedBadConversion()':
/home/cc-user-2154/Desktop/cocubes/yaml-cpp/include/yaml-cpp/exceptions.h:212: undefined reference to `YAML::BadConversion::~BadConversion()'
libuaparser_cpp.a(UaParser.o): In function `YAML::BadConversion::BadConversion(YAML::Mark const&)':
/home/cc-user-2154/Desktop/cocubes/yaml-cpp/include/yaml-cpp/exceptions.h:206: undefined reference to `vtable for YAML::BadConversion'
libuaparser_cpp.a(UaParser.o): In function `YAML::detail::node& YAML::detail::node_data::get<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<YAML::detail::memory_holder>)':
/home/cc-user-2154/Desktop/cocubes/yaml-cpp/include/yaml-cpp/node/detail/impl.h:143: undefined reference to `YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder>)'
libuaparser_cpp.a(UaParser.o):(.data.rel.ro._ZTIN4YAML18TypedBadConversionINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE[_ZTIN4YAML18TypedBadConversionINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE]+0x10): undefined reference to `typeinfo for YAML::BadConversion'
collect2: error: ld returned 1 exit status
...