Wenn ich program_options meine gemeinsam benutzte Bibliothek Verknüpfung mit:undefined reference boost :: program_options :: abstract_variables_map :: operator []
g++ -L/path_to_static_boost_libs -shared -o "test.so" ./test.o -lboost_program_options
Ich kann nicht Bibliothek geladen werden, da nicht definierter Referenz auf abstract_variables_map :: operator []:
0009b9f8 W int const& boost::program_options::variable_value::as<int>() const
U boost::program_options::abstract_variables_map::operator[](std::string const&) const
0009b55e W boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_any_cast> >::clone() const
ich habe versucht, ein anderes Programm (nicht gemeinsam genutzte Bibliothek) mit program_options Bibliothek statisch gelinkt zu bauen und nicht undefiniert Referenz erhalten.
Warum bekomme ich undefinierte Referenz, wenn ich Shared Library verknüpfe?
Versuchen Sie, '-lboost_system' hinzuzufügen. –
-lboost_system hilft nicht. – Raman
poste den Code, der in 'test.so' geht, damit wir das Verhalten reproduzieren können, das du siehst. –