gpt4 book ai didi

c++ - 未定义引用 boost::program_options::abstract_variables_map::operator[]

转载 作者:太空宇宙 更新时间:2023-11-04 11:32:48 24 4
gpt4 key购买 nike

当我将 program_options 链接到我的共享库时:

g++ -L/path_to_static_boost_libs -shared -o "test.so"  ./test.o   -lboost_program_options

由于对 abstract_variables_map::operator[] 的 undefined reference ,我无法加载库:

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

我试图用静态链接的 program_options 库构建另一个程序(不是共享库),但没有得到 undefined reference 。

为什么我在链接共享库时得到 undefined reference ?

最佳答案

第 1 步:找出未解析符号的 mangled 名称(应该已经显示在 dlerror() 错误消息中)。

第 2 步:找出哪个 boost 库提供了该符号的定义:

nm -A /path_to_static_boost_libs/*.a | grep <mangled-symbol-name>

第 3 步:将该库添加到 test.so 的链接行。

第四步:利润。

关于c++ - 未定义引用 boost::program_options::abstract_variables_map::operator[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10078784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com